1. 程式人生 > 其它 >CentOS6.5 HUE 安裝配置及問題處理

CentOS6.5 HUE 安裝配置及問題處理

技術標籤:HUEzookeeperhadoophive

CentOS6.5 HUE 安裝配置

CentOS6.5 HUE 安裝配置

HUE簡介

HUE=Hadoop User Experience(Hadoop使用者體驗),直白來說就一個開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來,最後Cloudera公司將其貢獻給Apache基金會的Hadoop社群,它是基於Python Web框架Django實現的。通過使用HUE我們可以在瀏覽器端的Web控制檯上與Hadoop叢集進行互動來分析處理資料。

一、HUE安裝(非root使用者)

1、必備的軟體環境:

1	Centos 6.5
2	Python 2.6.6 
3	jdk-8u171-linux-x64.tar/或者jdk7
4	apache-maven-3.3.9-bin.tar
5	apache-ant-1.8.1-bin.tar
6	hue-3.7.0-cdh5.3.6.tar

2、必備的叢集環境

Hadoop+Hbase+Hive+zk+Mysql+oozie

3、安裝步驟

3.1搭建maven環境

1)上傳解壓apache-maven-3.3.9-bin.tar到伺服器
2)在/etc/profile檔案中,配置maven引數

export MAVEN_HOME=/home/yanjiali/ruanjian/apache-maven-3.3.9
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

3)重新載入檔案profile檔案,測試maven是否安裝成功

mvn  -version

結果如下,即安裝成功

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /home/user/ruanjian/apache-maven-3.3.9
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /home/user/ruanjian/jdk1.7.0_67/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-431.el6.x86_64", arch: "amd64", family: "unix

3.2 安裝配置Ant

1 上傳解壓apache-ant-1.8.1-bin.tar到伺服器
2 在/etc/profile檔案中,配置ant引數

export ANT_HOME=/home/yanjiali/ruanjian/apache-ant-1.8.1
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin:$MAVEN_HOME/bin

3 重新載入檔案profile檔案,測試ant是否安裝成功

ant -v

結果如下,即安裝成功

Apache Ant version 1.8.1 compiled on April 30 2010
Trying the default build file: build.xml
Buildfile: build.xml does not exist!
Build failed

3.3 安裝HUE所需要的依賴包

yum install asciidoc cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain gcc gcc-c++ krb5-devel libffi-devel libtidy libxml2-devel libxslt-devel make mysql mysql-devel openldap-devel python-devel sqlite-devel openssl-devel gmp-devel -y

3.4 解壓安裝Hue的tar包

3.4 進入解壓後hue目錄,編譯(使用非root使用者)

cd hue-3.7.0-cdh5.3.6
make apps

3.5 編譯成功後,修改編寫hue.ini配置檔案

  1. 進入到desktop/conf目錄下,找到hue.ini檔案
  2. 修改hue.ini檔案
    在hue.ini檔案中找到如下內容,進行修改
secret_key=jFE93j;2[290-eiw.KEiwN2s3['d;/.q[eIW^y#e=+Iei*@Mn<qW5o
http_host=對應ip地址
http_port=8888
time_zone=Asia/Shanghai

修改完後如下圖
在這裡插入圖片描述

3.6 執行命令啟動hue服務

$ build/env/bin/supervisor

啟動成功後如下圖:
在這裡插入圖片描述

3.5 訪問HUE服務主頁

瀏覽器位址列輸入:http://192.168.137.90:8888/ 即可進入HUE頁面
第一次使用,需要建立一個使用者及密碼,且會成為hue的 超級使用者憑證

二、HUE 與其他框架的整合

1、HUE與HDFS

1.1配置HDFS

修改:hdfs-site.xml

<property>
	<name>dfs.webhdfs.enabled</name>
	<value>true</value>
</property>

修改:core-site.xml

新增
<property>
  <name>hadoop.proxyuser.hue.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.hue.groups</name>
  <value>*</value>
</property>
#設定代理使用者
<property>
  <name>hadoop.proxyuser.huaqiang.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.huaqiang.groups</name>
  <value>*</value>
</property>
#如果你的Hadoop配置了高可用,則必須通過httpfs來訪問,需要新增如下屬性,反則則不必須。(如果HUE服務與Hadoop服務不在同一節點,則必須配置)
<property>
  <name>hadoop.proxyuser.httpfs.hosts</name>
  <value>*</value>
</property>
<property>
  <name>hadoop.proxyuser.httpfs.groups</name>
  <value>*</value>
</property>

區別:WebHDFS是HDFS內建的元件,已經運行於NameNode和DataNode中。對HDFS檔案的讀寫,將會重定向到檔案所在的DataNode,並且會完全利用HDFS的頻寬。HttpFS是獨立於HDFS的一個服務。對HDFS檔案的讀寫,將會通過它進行中轉,它能限制頻寬佔用。

修改:httpfs-site.xml

<property>
  <name>httpfs.proxyuser.hue.hosts</name>
  <value>*</value>
</property>
<property>
  <name>httpfs.proxyuser.hue.groups</name>
  <value>*</value>
</property>

提示:

  • 如果沒有配置NameNode的HA,HUE可以用WebHDFS來管理HDFS
  • 如果配置了NameNodeHA,則HUE只可用HttpFS來管理HDFS

1.2啟動httpfs服務

httpfs.sh start

1.3 配置hue.ini檔案

找到**[hadoop]**標籤

[[hdfs_clusters]]
    # HA support by using HttpFs
    [[[default]]]
      # Enter the filesystem uri
      ##HDFS伺服器地址
      fs_defaultfs=hdfs://192.168.56.86:8020
      # 如果開啟了高可用,需要配置如下
      ## logical_name=mycluster
      ##向HDFS傳送命令的請求地址
      webhdfs_url=http://192.168.56.86:14000/webhdfs/v1
      #HADOOP的一些配置
      hadoop_conf_dir=/home/hadoop/apps/hadoop26/etc/hadoop
      hadoop_hdfs_home=/home/hadoop/apps/hadoop26
      hadoop_bin=/home/hadoop/apps/hadoop26/bin

1.4 測試

開啟HUE服務:

$ build/env/bin/supervisor

開啟HUE的頁面,進行HDFS管理。

提示1:(不修改也可以):
如果提示錯誤根目錄應該歸屬於hdfs,如下圖:
在這裡插入圖片描述
請修改python變數,位置如下:

cd desktop/libs/hadoop/src/hadoop/fs/
vi webhdfs.py
修改其中的變數值為:
DEFAULT_HDFS_SUPERUSER = 'hadoop' #設定的hue超級使用者

然後重啟HUE服務即可。
提示2
啟動HUE服務時,請先kill掉之前的HUE服務,如果提示地址被佔用,請使用如下命令檢視佔用8888埠的程序並kill掉:

$ netstat -tunlp | grep 8888

2、HUE與YARN

2.1、配置hue.ini

找到[[yarn_clusters]]標籤,涉及修改配置如下:

[[yarn_clusters]]
[[[default]]]
#yarn服務的配置
      resourcemanager_host=192.168.137.90
      resourcemanager_port=8032
      #是否將作業提交到此群集,並監控作業執行情況
      submit_to=True
      #logical_name=cluster-yarn1(如果開高可用的話)
      #配置yarn資源管理的訪問入口
      resourcemanager_api_url=http://192.168.137.90:8088
      proxy_api_url=http://192.168.137.90:8088
      #歷史伺服器管理的入口,檢視作業的歷史執行情況
      history_server_api_url=http://192.168.137.90:19888

Hadoop啟動jobhistoryserver來實現web檢視作業的歷史執行情況:

mr-jobhistory-daemon.sh start historyserver

2.2、重啟HUE測試

$ build/env/bin/supervisor
# 執行內建wordcount 測試
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.1.jar wordcount /input/ /output

3、HUE與Hive

3.1修改Hive配置檔案apache-hive-2.3.3-bin/conf/hive-site.xml

HUE與hive整合需要hive開啟HiveServer2服務,相關配置如下:

# TCP 的監聽埠
<property>
  <name>hive.server2.thrift.port</name>
  <value>10000</value>
  <description>TCP</description>
</property>
# TCP繫結的主機
<property>
	<name>hive.server2.thrift.bind.host</name>
	<value>192.168.137.90</value>
	<description>TCP</description>
</property>
# HiveServer2在響應使用長輪詢的非同步呼叫之前等待的時間(毫秒)
<property>
	<name>hive.server2.long.polling.timeout</name>
	<value>5000</value>
	<description>HiveServer2</description>
</property>
# 指向的是執行metastore服務的主機
<property>
	<name>hive.metastore.uris</name>
	<value>thrift://192.168.137.90:9083</value>
	<description>metastore</description>
</property>

3.2 啟動Hive相關服務

$ bin/hive --service metastore &
$ bin/hive --service hiveserver2 &

提示1:如果設定了uris,在今後使用Hive時,那麼必須啟動如上兩個命令,否則Hive無法正常啟動。
提示2:如果如法正確啟動,請嘗試kill -9 RunJar ,在重新啟動

3.2 配置hue.ini

找到[beeswax]屬性標籤,涉及修改如下:

[beeswax]
hive_server_host=192.168.137.900
hive_server_port=10000
hive_conf_dir=/home/hadoop/apps/apache-hive-2.3.3-bin/conf

3.3 重啟HUE測試

$ build/env/bin/supervisor

4、 HUE與Mysql

4.1 配置hue.ini

找到[[[mysql]]]標籤,涉及修改如下:

[[[mysql]]]
nice_name=db_mysql
engine=mysql
host=192.168.137.90
port=3306
user=root
password=123456

4.2 重啟hue.ini測試

$ build/env/bin/supervisor

5、HUE與Zookeeper

5.1.配置hue.ini

找到[zookeeper]標籤,涉及修改如下:

[zookeeper]
[[clusters]]
[[[default]]]
host_ports=192.168.56.86:2181,192.168.56.87:2181,192.168.56.88:2181

5.2 啟動zk測試

啟動:
zkServer.sh start
狀態:
zkServer.sh status

5.3 重啟HUE測試

6、HUE與HBase(先啟動zk)

6.1、修改hue.ini配置

找到[hbase]標籤,涉及修改內容如下:

[hbase]
hbase_clusters=(Cluster|192.168.137.90:9090)
hbase_conf_dir=/home/hadoop/apps/hbase/conf

6.2、啟動HBase服務和Hbase的thrift服務

$ bin/start-hbase.sh
$ bin/hbase-daemon.sh start thrift

6.3、重啟HUE進行測試

$ build/env/bin/supervisor

3.7、HUE與Oozie

7.1配置hue.ini

找到[liboozie]標籤以及[oozie]標籤涉及修改如下:

[liboozie]
#執行Oozie服務的URL。
oozie_url=http://192.168.137.90:11000/oozie
#HDFS上的位置,提交時部署工作流。
remote_deployement_dir=/user/hadoop/oozie-apps
[oozie]
#本地儲存oozie示例的位置。
local_data_dir=/home/hadoop/apps/oozie-4.0.0-cdh5.3.6/examples
#本地儲存oozie示例資料的位置。
sample_data_dir=/home/hadoop/apps/oozie-4.0.0-cdh5.3.6/oozie-apps
#HDFS上儲存oozie示例和工作流的位置。
remote_data_dir=/user/hadoop/oozie-apps
#啟用Cron來定義協調器的頻率替換舊的頻率數/單位。
enable_cron_scheduling=true

7.2 啟動Oozie相關服務

$ bin/oozied.sh start

提示:
如果提示無法關聯oozie的share/lib
修改oozie的配置檔案oozie-site.xml

    <property>
        <name>oozie.service.WorkflowAppService.system.libpath</name>
        # 將此處的路徑改為/user/oozie/share/lib
        <value>/user/oozie/share/lib</value>  
        <description>
            System library path to use for workflow applications.
            This path is added to workflow application if their job properties sets
            the property 'oozie.use.system.libpath' to true.
        </description>
    </property>

然後使用oozie命令重新上傳yarn.tar.gz到HDFS

bin/oozie-setup.sh sharelib create -fs hdfs://192.168.137.90:8020 -locallib oozie-sharelib-4.0.0-cdh5.3.6-yarn.tar.gz

HDFS 中就會生成對應的目錄