CentOS6.5 HUE 安裝配置及問題處理
CentOS6.5 HUE 安裝配置
- 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配置檔案
- 進入到desktop/conf目錄下,找到hue.ini檔案
- 修改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 中就會生成對應的目錄