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 中就会生成对应的目录