HUE=HadoopUser Experience,看这名字就知道怎么回事了吧,没错,直白来讲就是Hadoop用户体验,是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。经过使用HUE咱们能够在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据。html
官网网站:http://gethue.com/ java
http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-cdh5.3.0/manual.html node
打开官方网站能够找到对应的部署HUE所需的各类依赖列表,以下图所示:python
如上图所示,这部份内容是告诉你,安装编译Hue须要依赖哪些Linux安装包,你只须要使用yum命令一次安装就能够了,在此给你们整理好该命令(注意使用root权限安装):mysql
# yum -y install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi gcc gcc-c++ krb5-devel libtidy libxml2-devel libxslt-devel openldap-devel python-devel sqlite-devel openssl-devel mysql-devel gmp-devel
(尖叫提示:使用yum安装这些包的同时,也会自动安装openJDK的依赖,因此,请自行删除安装后的openJDK,忘记的同窗请参考Linux基础)c++
(查询:# rpm -qa | grep java)web
(删除:# rpm -e --nodeps xxxxxxx-java-xxxx.rpm)sql
$ tar -zxf /opt/softwares/hue-3.7.0-cdh5.3.6.tar.gz -C /opt/modules/cdh/
到hue安装目录下,执行make appsapi
$ make apps
尖叫提示:使用普通用户编译浏览器
大概等个几分钟以后,就编译成功了。
修改Hue.ini文件
文件位置:/opt/modules/cdh/hue-3.7.0-cdh5.3.6/desktop/conf/hue.ini
其中的secret_key请参照官方网站配置:
修改内容参照以下:
完成以后呢,保存退出,咱们来使用命令启动Hue$ build/env/bin/supervisor,出现以下界面表示启动成功:
接下来使用浏览器来查看hue界面:http://hadoop-senior01.itguigu.com:8888,接着咱们就看到以下界面:
这句话是在提示你,第一次使用本工具,须要建立一个用户及密码,且会成为hue的超级用户凭证,在此呢,我设置为admin用户名,密码随意,那就123456吧,而后呢就能够见到以下界面了:
添加
属性:dfs.webhdfs.enabled
属性值:true
解释:Enable WebHDFS (REST API) in Namenodes and Datanodes.
添加
属性:hadoop.proxyuser.hue.hosts
变动为:hadoop.proxyuser.admin.hosts
属性值:*
解释:代理的用户
属性:hadoop.proxyuser.hue.groups
变动为:hadoop.proxyuser.admin.groups
属性值:*
解释:代理的用户组
若是你的Hadoop配置了高可用,则必须经过httpfs来访问,须要添加以下属性,反则则没必要须。(若是HUE服务与Hadoop服务不在同一节点,则必须配置)
属性:hadoop.proxyuser.hue.hosts
变动为:hadoop.proxyuser.httpfs.hosts
属性值:*
属性:hadoop.proxyuser.hue.groups
变动为:hadoop.proxyuser.httpfs.groups
属性值:*
添加
属性:httpfs.proxyuser.hue.hosts
属性值:*
属性:httpfs.proxyuser.hue.groups
属性值:*
解释:以上两个属性主要用于HUE服务与Hadoop服务不在同一台节点上所必须的配置。
尖叫提示:
* 若是没有配置NameNode的HA,HUE能够用WebHDFS来管理HDFS
* 若是配置了NameNodeHA,则HUE只可用HttpFS来管理HDFS
$ scp -r etc/ hadoop-senior02.itguigu.com:/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/
$ scp -r etc/ hadoop-senior03.itguigu.com:/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/
$ /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/httpfs.sh start &
找到[hadoop]标签
$ build/env/bin/supervisor
打开HUE的页面,进行HDFS管理。
尖叫提示:
若是提示错误根目录应该归属于hdfs,请修改python变量,位置以下:
/opt/modules/cdh/hue-3.7.0-cdh5.3.6/desktop/libs/hadoop/src/hadoop/fs/webhdfs.py
修改其中的变量值为:
DEFAULT_HDFS_SUPERUSER = 'admin'
而后重启HUE服务便可。
尖叫提示:
启动HUE服务时,请先kill掉以前的HUE服务,若是提示地址被占用,请使用以下命令查看占用8888端口的进程并kill掉:
$ netstat -tunlp | grep 8888
找到[[yarn_clusters]]标签,修改配置以下图所示:
$ build/env/bin/supervisor
HUE与hive集成须要hive开启HiveServer2服务
属性:hive.server2.thrift.port
属性值:10000
属性:hive.server2.thrift.bind.host
属性值:hadoop-senior01.itguigu.com
属性:hive.server2.long.polling.timeout
属性值:5000
属性:hive.metastore.uris
属性值:thrift://hadoop-senior01.itguigu.com:9083
$ bin/hive --service metastore &
$ bin/hive --service hiveserver2 &
尖叫提示:若是设置了uris,在从此使用Hive时,那么必须启动如上两个命令,不然Hive没法正常启动。
找到[beeswax]属性标签,配置如图:
来到这样的界面进行简单的查询便可测试
$ build/env/bin/supervisor
找到[[[mysql]]]标签,并删掉标签注释,配置以下:
启动后便可测试是否成功链接Mysql服务,而且测试是否能够看到数据
$ build/env/bin/supervisor
找到[liboozie]标签以及[oozie]标签配置以下
[liboozie]:
[oozie]:
$ bin/oozied.sh start
$ build/env/bin/supervisor
尖叫提示:若是提示没法关联oozie的share/lib,请使用hdfs命令建立该目录便可:
$ bin/hdfs dfs -mkdir -p /user/oozie/share/lib
找到[hbase]标签,修改内容如图:
$ bin/hbase-daemon.sh start thrift
$ build/env/bin/supervisor
找到[zookeeper]标签,配置以下:
$ build/env/bin/supervisor
尖叫提示:HUE只支持Sqoop2的集成,不支持Sqoop1,在此再也不演示。
http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-cdh5.3.0/user-guide/sqoop.html
在此咱们总结一下集成HUE时,咱们开启的后台服务项
$ /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/httpfs.sh start &
$ /opt/modules/cdh/hive-0.13.1-cdh5.3.6/bin/hive --service metastore &
$ /opt/modules/cdh/hive-0.13.1-cdh5.3.6/bin/hive --service hiveserver2 &
$ /opt/modules/cdh/hbase-0.98.6-cdh5.3.6/bin/hbase-daemon.sh start thrift &
$ /opt/modules/cdh/oozie-4.0.0-cdh5.3.6/bin/oozied.sh start &
为了方便,咱们把这些服务加在群起脚本中,如图所示:
完整脚本以下:
#!/bin/bash
echo "===================================正在开启集群服务=======================================" echo "===================================正在开启Zookeeper节点==================================" for i in admin@hadoop-senior01.itguigu.com admin@hadoop-senior02.itguigu.com admin@hadoop-senior03.itguigu.com do ssh $i '/opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6/bin/zkServer.sh start' done echo "===================================正在开启NameNode节点==================================" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh start namenode' echo "===================================正在开启DataNode节点==================================" for i in admin@hadoop-senior01.itguigu.com admin@hadoop-senior02.itguigu.com admin@hadoop-senior03.itguigu.com do ssh $i '/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh start datanode' done echo "===================================正在开启SeondaryNameNode节点==========================" ssh admin@hadoop-senior03.itguigu.com '/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/hadoop-daemon.sh start secondarynamenode' echo "===================================正在开启ResourceManager节点===========================" ssh admin@hadoop-senior02.itguigu.com '/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/yarn-daemon.sh start resourcemanager' echo "===================================正在开启NodeManager节点===============================" for i in admin@hadoop-senior01.itguigu.com admin@hadoop-senior02.itguigu.com admin@hadoop-senior03.itguigu.com do ssh $i '/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/yarn-daemon.sh start nodemanager' done echo "===================================正在开启JobHistoryServer节点==========================" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/mr-jobhistory-daemon.sh start historyserver' echo "===================================正在开启HBase节点=====================================" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/bin/start-hbase.sh' echo "===================================正在第1节点开启httpfs服务==============================" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/sbin/httpfs.sh start &' echo "===================================正在第1节点开启metastore与hiveserver2服务==============" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hive-0.13.1-cdh5.3.6/bin/hive --service metastore &' ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hive-0.13.1-cdh5.3.6/bin/hive --service hiveserver2 &' echo "===================================正在第1节点开启HBase thrift服务========================" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hbase-0.98.6-cdh5.3.6/bin/hbase-daemon.sh start thrift &' echo "===================================正在第1节点开启Oozie服务===============================" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/oozie-4.0.0-cdh5.3.6/bin/oozied.sh start &' echo "===================================正在第1节点开启HUE服务=================================" ssh admin@hadoop-senior01.itguigu.com '/opt/modules/cdh/hue-3.7.0-cdh5.3.6/build/env/bin/supervisor &'