回覆列表
  • 1 # 使用者3924878280036

    最近在公司新的 Ambari 叢集上嘗試安裝Kylin,踩了一堆坑,花了整整2天才弄好,寫篇文章記錄一下。

    首先按照官方教程,找到適合自己環境的 Kylin release。Ambari 2.7.1.0 對應的是 Hadoop 3,HBase 2.0,以及 Spark 2.3.1,選錯版本的話,就會出現一堆 NoSuchMethodError。

    設定 KYLIN_HOME, 跑了一下 check-env.sh,沒有發現任何問題。

    坑1

    嘗試執行bin/kylin.sh start,發現卡在了 Retriving hive dependency 這一步。檢查指令碼,發現 kylin 預設使用的 Hive 客戶端是 cli,而 Ambari 自帶的 Hive 用的是 Beeline,而且 Kylin 自帶的呼叫程式碼不帶 authentication,因此會一直卡在等待輸入使用者名稱密碼的地方。需要設定 hive 的 client 為 beeline,並且在 beeline 的引數(kylin.properties) 裡,設定 -n -p (hive 的使用者名稱密碼)

    按照以下步驟修改程式碼:

    另外還需要注意的是,需要刪掉幾個 hiveconf 的引數:

    conf/kylin_hive_conf.yml 中的 dfs.replication 和 mapreduce.job.split.metainfo.maxsize,conf/kylin.properties 裡面的 hive.security.authorization.sqlstd.confwhitelist.append

    以上引數不支援在啟動客戶端過程中修改,需要手動註釋掉。

    坑2

    以上修改完畢後可以透過 hive dependency check,然後卡在這個地方:

    這一步是 curator 和 zookeeper 不相容導致的。檢查了一下,Ambari 自帶的元件裡,有些包含有 curator 4.0.0,而其自帶的ZooKeeper 是3.4.6,只能使用 curator 2.12.0。手動替換 jar 包後該問題解決。

    坑3

    繼續執行 kylin.sh start,跑到建立 HBase 表的地方,又報錯了:

    該問題原因是這樣的:Ambari 使用 Ranger 管理 HBase 的鑑權,而 Kylin 安裝程式強制要求使用的 root 使用者並不包含在 Ambari 的 user 列表中。我找了半天,也沒看到在哪裡可以更改 Kylin 使用的 HBase 使用者,最後乾脆去 Ambari 裡面把 Ranger 的 HBase 外掛給關掉了,這樣,Kylin 終於可以順利啟動了。這個辦法只能說是一個權益之計,以後有時間再細看吧。

    坑4

    在啟動 Kylin 後,發現登入頁還是 404。檢查 logs/kylin.log 發現這樣的 error log:

    具體的出錯資訊太長就不貼了。這個錯誤和一個 bug 有關,原因是 Kylin 2.6.1 開始預設不自帶 Spark 客戶端,而使用 Ambari 的 Spark 客戶端,又和 Kylin 出現了不相容的情況。解決方法是用 Kylin 自帶的spark download 指令碼 重新下載一個 spark 到$KYLIN_HOME/spark,並把 SPARK_HOME 指向該目錄。

    在踩完這些坑之後,Kylin 終於跑起來了。我感覺,Kylin 作為一個 Apache 頂級專案,在支援方面仍然顯得不夠成熟。對於不同的 Hadoop 發行版本,開發組沒有去檢查和維護其預設配置的相容性,而官方文件對這些情況又隻字不提,這導致安裝和啟動過程出現了很多浪費時間的異常出現。希望以後在這些方面,Kylin 能夠做的更加完善。

  • 2 # 使用者1228436877168

    clouderamanagerCloudera可以簡化Hadoop的安裝配置過程,自動在叢集節點上安裝hadoop相關元件,建立使用者。所有機器上一定要安裝好Perl包。clouderamanagerfree是個免費的版本,對普通的應用也夠了。安裝比較簡單,下載相應的.bin檔案執行

  • 中秋節和大豐收的關聯?
  • 做的石膏豆腐不細膩沒筋道是怎麼回事?