大数据技术之HUE

一、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

发布了318 篇原创文章 · 获赞 46 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_31784189/article/details/104910654
今日推荐