一、HUE简介
1.1、来源
HUE=Hadoop User Experience(Hadoop用户体验),直白来说就一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。通过使用HUE我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据。
1.2、官网及使用者
官网网站:http://gethue.com/
使用的公司:
二、HUE安装(非root用户)
2.1、帮助文档
http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-cdh5.3.0/manual.html
2.2、HUE安装
Centos6.8安装HUE
1.安装前准备
1.1必备的软件环境:
1 |
Centos 6.8 |
2 |
Python 2.6.6 |
3 |
jdk-8u171-linux-x64.tar/或者jdk7
扫描二维码关注公众号,回复:
10201287 查看本文章
|
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 |
1.2必备的集群环境
Hadoop+Hbase+Hive+zk+Mysql+oozie
2. 安装步骤
2.1.安装配置Maven
1) 上传解压apache-maven-3.3.9-bin.tar到opt/module目录下
2)在/etc/profile文件中,配置maven参数
MAVEN_HOME=/home/hadoop/apps/apache-maven-3.3.9
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
3)重写加载文件profile文件,测试maven是否安装成功
输入如下命令:
mvn -version
结果如下图,即安装成功
2.2.安装配置Ant
1) 上传解压apache-ant-1.8.1-bin.tar到opt/module目录下
2)在/etc/profile文件中,配置ant参数
ANT_HOME=/opt/apache-ant-1.8.1
PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
3) 重写加载文件profile文件,测试ant是否安装成功
输入如下命令:
ant -v
结果如下图,即安装成功
2.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
2.4.解压安装Hue的tar包
cd /opt/module
tar -zxvf hue-3.7.0-cdh5.3.6.tar
2.5.进入解压后hue目录,编译(使用非root用户)
2.5.1编译
cd hue-3.7.0-cdh5.3.6
make apps
注意:次编译过程大概需要3分钟左右,过程中没有报错即可
2.5.2 扩展:HUE编译的两种方式
1) 通过maven、ant进行hue源码编译
2) 通过pythonhue源码编译(在centos6.8因为自身python为2.6.6版本和hue编译需 要2.7版 本会有一点小冲突,故采用1)两种方式都是在hue目录下 make apps,只是 第一种方式要先配置maven、ant的环境而已
注意:不要使用root 用户安装
2.6.编译成功后,修改编写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=linux01
http_port=8888
time_zone=Asia/Shanghai
修改完成后如下图
2.7.运行命令启动hue服务
1)运行如下命令
$ build/env/bin/supervisor
2) 启动成功后如下图:
3)访问HUE服务主页
浏览器地址栏输入:http://192.168.56.89:8888/ ,出现下图说明成功!
这句话是在提示你,第一次使用本工具,需要创建一个用户及密码,且会成为hue的 超级用户凭证,在此呢,我设置为admin用户名,密码随意,那就123456吧,然后 呢就可以见到如下界面了:
3. 安装过程错误总结
1)使用root用户安装,找不到hue的用户
三、HUE与其他框架的集成
3.1、HUE与HDFS
3.1.1、梳理集群环境
hadoop01 |
hadoop02 |
hadoop03 |
hadoop04 |
oozie |
|
|
|
zk |
zk |
zk |
|
hbase |
hbase |
hbase |
|
Hadoop |
Hadoop |
Hadoop |
|
3.1.2、配置HDFS
修改:hdfs-site.xml
属性:dfs.webhdfs.enabled
属性值:true
解释:Enable WebHDFS (REST API) in Namenodes and Datanodes.
修改: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.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.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>
解释:以上两个属性主要用于HUE服务与Hadoop服务不在同一台节点上所必须的配置。
提示:
* 如果没有配置NameNode的HA,HUE可以用WebHDFS来管理HDFS
* 如果配置了NameNodeHA,则HUE只可用HttpFS来管理HDFS
3.1.3、scp同步配置
//打包
$ tar cvf conf.tar.gz hadoop/
//发送
$ scp -r conf.tar.gz [email protected]:/home/hadoop/apps/hadoop26/etc/
$ scp -r conf.tar.gz [email protected]:/home/hadoop/apps/hadoop26/etc/
3.1.4、启动httpfs服务
$ /home/hadoop/apps/hadoop26/sbin/httpfs.sh start
3.1.5、配置hue.ini文件
找到[hadoop]标签
[[hdfs_clusters]]
# HA support by using HttpFs
[[[default]]]
# Enter the filesystem uri
##HDFS服务器地址
fs_defaultfs=hdfs://192.168.56.86:8020
# fs_defaultfs=hdfs://mycluster
# NameNode logical name.
# 如果开启了高可用,需要配置如下
## logical_name=mycluster
# Use WebHdfs/HttpFs as the communication mechanism.
# Domain should be the NameNode or HttpFs host.
# Default port is 14000 for HttpFs.
## webhdfs_url=http://localhost:50070/webhdfs/v1
##向HDFS发送命令的请求地址
webhdfs_url=http://192.168.56.86:14000/webhdfs/v1
# Change this if your HDFS cluster is Kerberos-secured
## security_enabled=false
# Default umask for file and directory creation, specified in an octal value.
## umask=022
# Directory of the Hadoop configuration
## hadoop_conf_dir=$HADOOP_CONF_DIR when set or '/etc/hadoop/conf'
#HADOOP的一些配置
hadoop_conf_dir=/home/hadoop/apps/hadoop26/etc/hadoop
hadoop_hdfs_home=/home/hadoop/apps/hadoop26
hadoop_bin=/home/hadoop/apps/hadoop26/bin
3.1.6、测试
开启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
3.2、HUE与YARN
3.2.1、配置hue.ini
找到[[yarn_clusters]]标签,涉及修改配置如下:
[[yarn_clusters]]
[[[default]]]
#yarn服务的配置
resourcemanager_host=192.168.56.86
resourcemanager_port=8032
#是否将作业提交到此群集,并监控作业执行情况
submit_to=True
#logical_name=cluster-yarn1(如果开高可用的话)
#配置yarn资源管理的访问入口
resourcemanager_api_url=http://192.168.56.86:8088
proxy_api_url=http://192.168.56.86:8088
#历史服务器管理的入口,查看作业的历史运行情况
history_server_api_url=http://192.168.56.87:19888
Hadoop启动jobhistoryserver来实现web查看作业的历史运行情况:./mr-jobhistory-daemon.sh start historyserver
3.2.2、重启HUE测试
$ build/env/bin/supervisor
//测试
./bin/yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.1.jar wordcount /input/ /output
3.3、HUE与Hive
3.3.1、修改Hive配置文件apache-hive-2.3.3-bin/conf/hive-site.xml
HUE与hive集成需要hive开启HiveServer2服务,相关配置如下:
属性:hive.server2.thrift.port
属性值:10000
描述: TCP 的监听端口
属性:hive.server2.thrift.bind.host
属性值:192.168.56.88
描述:TCP绑定的主机
属性:hive.server2.long.polling.timeout
属性值:5000
描述:HiveServer2在响应使用长轮询的异步调用之前等待的时间(毫秒)
属性:hive.metastore.uris
属性值:thrift://192.168.56.88:9083
描述:指向的是运行metastore服务的主机
3.3.2、启动Hive相关服务
$ bin/hive --service metastore &
$ bin/hive --service hiveserver2 &
提示1:如果设置了uris,在今后使用Hive时,那么必须启动如上两个命令,否则Hive无法正常启动。
提示2:如果如法正确启动,请尝试kill -9 RunJar ,在重新启动
3.3.3、配置hue.ini
找到[beeswax]属性标签,涉及修改如下:
[beeswax]
hive_server_host=192.168.56.88
hive_server_port=10000
hive_conf_dir=/home/hadoop/apps/apache-hive-2.3.3-bin/conf
3.3.4、重启HUE测试
$ build/env/bin/supervisor
3.4、HUE与Mysql
3.4.1、配置hue.ini
找到[[[mysql]]]标签,涉及修改如下:
[[[mysql]]]
nice_name=db_mysql
engine=mysql
host=192.168.56.88
port=3306
user=root
password=123456
3.4.2、重启hue.ini测试
启动后即可测试是否成功连接Mysql服务,并且测试是否可以看到数据
$ build/env/bin/supervisor
3.5.3、重启HUE测试
$ build/env/bin/supervisor
提示:如果提示无法关联oozie的share/lib,请使用hdfs命令创建该目录即可:
$ bin/hdfs dfs -mkdir -p /user/oozie/share/lib
3.5、HUE与Zookeeper
3.7.1、配置hue.ini
找到[zookeeper]标签,涉及修改如下:
[zookeeper]
[[clusters]]
[[[default]]]
host_ports=192.168.56.86:2181,192.168.56.87:2181,192.168.56.88:2181
3.7.2、启动zk测试
启动:
zkServer.sh start
状态:
zkServer.sh status
3.7.3、重启HUE测试
$ build/env/bin/supervisor
3.6、HUE与HBase(先启动zk)
3.6.1、修改hue.ini配置
找到[hbase]标签,涉及修改内容如下:
[hbase]
hbase_clusters=(Cluster|192.168.56.87:9090)
hbase_conf_dir=/home/hadoop/apps/hbase/conf
3.6.2、启动HBase服务和Hbase的thrift服务
启动:
$ bin/start-hbase.sh
$ bin/hbase-daemon.sh start thrift
3.6.3、重启HUE进行测试
$ build/env/bin/supervisor
3.7、HUE与Oozie
3.5.1、配置hue.ini
找到[liboozie]标签以及[oozie]标签涉及修改如下:
[liboozie]:
[liboozie]
#运行Oozie服务的URL。
oozie_url=http://192.168.56.87:11000/oozie
#HDFS上的位置,提交时部署工作流。
remote_deployement_dir=/user/hadoop/oozie-apps
[oozie]:
[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
3.5.2、启动Oozie相关服务
$ bin/oozied.sh start
四、总结
在此我们总结一下集成HUE时,我们开启的后台服务项
4.1、Hadoop(hdfs和yarn)
启动:
$ ./bin/start-hdfs.sh
$ ./bin/start-hdfs.sh
或
$ ./bin/start-all.sh
注意:
$ ~/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/httpfs.sh start
4.2、Hive
启动:
$ ~/modules/cdh/hive-0.13.1-cdh5.3.6/bin/hive --service metastore
$ ~/modules/cdh/hive-0.13.1-cdh5.3.6/bin/hive --service hiveserver2
或
$ ./bin/hive
4.3、zk启动
启动:
zkServer.sh start
状态:
zkServer.sh status
4.4、HBase
启动:
bin/start-hbase.sh
注意:在192.168.56.87 thrift
$ bin/hbase-daemon.sh start thrift &
4.5、Oozie
启动:
$ bin/oozied.sh start &
注意:
先启动hadoop 和zookpeer