1. 需求引入


在大数据生态圈中有很多的技术,每一个技术的使用和管理都有自己的规范,例如hdfs操作有相关的插件,mr任务的监控有相关的页面,hbase的操作也有相对应的页面,那么这些零零散散的管理页面能否统一到一个软件中进行管理呢?


2. hue的简介


2.1. hue概述


Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。


 


通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。




hadoop 可视化管理 hadoop可视化界面_hadoop 可视化管理


 


2.2. Hue能干什么?


1,访问HDFS和文件浏览


2,通过web调试和开发hive以及数据结果展示


3,查询solr和结果展示,报表生成


4,通过web调试和开发impala交互式SQL Query


5,spark调试和开发


6,Pig开发和调试


7,oozie任务的开发,监控,和工作流协调调度


8,Hbase数据查询和修改,数据展示


9,Hive的元数据(metastore)查询


10,MapReduce任务进度查看,日志追踪


11,创建和提交MapReduce,Streaming,Java job任务


12,Sqoop2的开发和调试


13,Zookeeper的浏览和编辑


14,数据库(MySQL,PostGres,SQlite,Oracle)的查询和展示


 


2.3. Hue怎么用或者什么时候应该用?


 


如果你们公司用的是CDH的hadoop,那么很幸运,Hue也是出自CDH公司,自家的东西用起来当然很爽。


 


如果你们公司用的是Apache Hadoop或者是HDP的hadoop,那么也没事,Hue是开源的,而且支持任何版本的hadoop。


 


关于什么时候用,这纯属一个锦上添花的功能,你完全可以不用hue,因为各种开源项目都有自己的使用方式和开发接口,hue只不过是统一了各个项目的开发方式在一个接口里而已,这样比较方便而已,不用你一会准备使用hive,就开一个hive的cli终端,一会用pig,你就得开一个pig的grunt,或者你又想查Hbase,又得需要开一个Hbase的shell终端。如果你们使用hadoop生态系统的组件很多的情况下,使用hue还是比较方便的,另外一个好处就是hue提供了一个web的界面来开发和调试任务,不用我们再频繁登陆Linux来操作了。


 


你可以在任何时候,只要能上网,就可以通过hue来开发和调试数据,不用再装Linux的客户端来远程登陆操作了,这也是B/S架构的好处。


 


 


3. Hue的安装


3.1. 安装依赖


yum -y install ant


yum -y install asciidoc


yum -y install cyrus-sasl-devel


yum -y install cyrus-sasl-gssapi


yum -y install gcc


yum -y install gcc-c++


yum -y install krb5-devel


yum -y install libtidy


yum -y install libxml2-devel


yum -y install libxslt-devel


yum -y install make


yum -y install mvn


yum -y install mysql


yum -y install mysql-devel


yum -y install openldap-devel


yum -y install python-devel


yum -y install sqlite-devel


yum -y install openssl-devel


yum -y install libffi-devel openssl-devel


yum -y install gmp-devel


3.2. 下载


Hue官网:http://gethue.com/


下载地址:http://gethue.com/downloads/releases/4.0.1/hue-4.0.1.tgz



hadoop 可视化管理 hadoop可视化界面_hdfs_02


 



hadoop 可视化管理 hadoop可视化界面_hadoop_03


 


3.3. 安装


使用普通用户hadoop安装


3.3.1. 上传压缩包


通过rz -y上传压缩包hue-4.0.1.tgz上传到linux的任意节点任意目录


3.3.2. 解压


通过tar –zxvf hue-4.0.1.tgz将压缩包解压到任意目录


3.3.3. 编译


进入到hue的目录,执行make apps命令,进行编译


3.3.4. 修改desktop\conf\hue.ini的基本配置


配置如下:


[desktop]


secret_key=XLWGyuEUB6NEYhWGl3mbZZdJtamyuybDxnjjth5r


http_host=client


http_port=8888


is_hue_4=true


time_zone=Asia/Shanghai


django_debug_mode=false


http_500_debug_mode=false


server_user=hadoop


server_group=hadoop


default_user=hadoop


default_hdfs_superuser=hadoop


3.3.5. 启动hue


命令:build/env/bin/supervisor


3.3.6. 访问hue


http://192.168.56.204:8888



hadoop 可视化管理 hadoop可视化界面_hive_04


 


4. Hue的使用


4.1. 集成hdfs和yarn


4.1.1. 启动hdfs的webhdfs


修改hdfs-site.xml开启webhdfs


<property>


<name>dfs.webhdfs.enabled</name>


<value>true</value>


</property>


 


配置core-site.xml:添加操作hue的用户和租


<property>


<name>hadoop.proxyuser.hadoop.hosts</name>


<value>*</value>


</property>


<property>


<name>hadoop.proxyuser.hadoop.groups</name>


<value>*</value>


</property>


 


配置yarn-site.xml:开启jobhistory


<property>


<name>mapreduce.jobhistory.webapp.address</name>


<value>master1:19888</value>


</property>


 


4.1.2. 配置hue.ini


[hadoop]


[[hdfs_clusters]]


[[[default]]]


fs_defaultfs=hdfs://master1:8020


logical_name=master1


webhdfs_url=http://master1:50070/webhdfs/v1


security_enabled=false


hadoop_conf_dir=/home/hadoop/hadoop/etc/hadoop


[[yarn_clusters]]


[[[default]]]


resourcemanager_host=master1


resourcemanager_port=8032


submit_to=True


resourcemanager_api_url=http://master1:8088


proxy_api_url=http://master1:8088


history_server_api_url=http://master1:19888


spark_history_server_url=http://master1:18088


4.1.3. 启动hadoop


start-all.sh


4.1.4. 重新启动hue


build/env/bin/supervisor


4.1.5. 操作hdfs



hadoop 可视化管理 hadoop可视化界面_hadoop_05


 



hadoop 可视化管理 hadoop可视化界面_hdfs_06


 



hadoop 可视化管理 hadoop可视化界面_hue_07


 


4.2. 集成hive


4.2.1. 在hive-site.xml中配置hiveserver2


<property>


<name>hive.server2.thrift.bind.host</name>


<value>master2ha</value>


</property>


<property>


<name>hive.server2.thrift.http.port</name>


<value>10001</value>


</property>


 


4.2.2. 启动hiveserver2


/home/hadoop/hive/bin/hiveserver2


 


4.2.3. 配置hue.ini


[beeswax]


hive_server_host=master2ha


hive_server_port=10000


hive_conf_dir=/home/hadoop/hive/conf


server_conn_timeout=120


4.2.4. 重启hue


build/env/bin/supervisor


4.2.5. 使用hive



hadoop 可视化管理 hadoop可视化界面_hadoop 可视化管理_08


 



hadoop 可视化管理 hadoop可视化界面_hdfs_09


 



hadoop 可视化管理 hadoop可视化界面_hdfs_10


 


4.3. 集成关系型数据库


【注:需要切换回3.0版本使用】


4.3.1. 修改hue.ini


[librdbms]


[[databases]]


[[[sqlite]]]


nice_name=SQLite


name=/home/hadoop/hue-4.0.0/desktop/desktop.db


engine=sqlite


[[[mysql]]]


nice_name="My SQL DB"


engine=mysql


host=localhost


port=3306


user=root


password=root


4.3.2. 重启hue


build/env/bin/supervisor


4.3.3. 操作数据库



hadoop 可视化管理 hadoop可视化界面_hue_11


 



hadoop 可视化管理 hadoop可视化界面_hadoop 可视化管理_12


 



hadoop 可视化管理 hadoop可视化界面_hadoop 可视化管理_13


 


4.3.4. 在web页面上将hue切换会3版本使用


4.4. 集成hbase


4.4.1. 启动hbase的thriftserver


hbase-daemon.sh start thrift


4.4.2. 修改hue.ini


[hbase]


hbase_clusters=(Cluster|master1:9090)


hbase_conf_dir=/home/hadoop/hbase/conf


4.4.3. 重启hue


build/env/bin/supervisor


4.4.4. 使用hbase



hadoop 可视化管理 hadoop可视化界面_hdfs_14


 


4.5. 集成solr


4.5.1. 修改hue.ini


[search]


solr_url=http://client:8080/solr/


security_enabled=false


empty_query=*:*


4.5.2. 重启hue


build/env/bin/supervisor


4.5.3. 操作solr



hadoop 可视化管理 hadoop可视化界面_hue_15


 


4.6. 集成spark


4.6.1. 安装mvn


wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo


 


yum -y install apache-maven


4.6.2. 下载livy


https://github.com/cloudera/livy/releases


下载0.2.0版本



hadoop 可视化管理 hadoop可视化界面_hadoop 可视化管理_16


 


4.6.3. 编译livy(时间超长,需要下载很多依赖)


export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=1024m -XX:MaxPermSize=2048M"


mvn -Dspark.version=1.6.2 -Dmaven.test.skip package


 


编译不成功,可以重新编译:


mvn -Dmaven.test.skip clean package


 


4.6.4. 配置livy


修改livy-env.sh


export SPARK_HOME=/home/hadoop/spark


export HADOOP_CONF_DIR=/home/hadoop/hadoop/etc/hadoop/conf


 


修改spark-blacklist.conf


注释spark.master


# spark.master


 


修改 livy.conf


//默认使用hiveContext


livy.repl.enableHiveContext = true


//开启用户代理


livy.impersonation.enabled = true


//设置session空闲过期时间


livy.server.session.timeout = 1h


 


4.6.5. 启动livy


nohup livy-0.2.0/bin/livy-server >/dev/null 2>&1 &


通过端口8998访问


4.6.6. Hue集成spark


修改hue.ini文件


[spark]


livy_server_host=master1


livy_server_port=8998


livy_server_session_kind=process


security_enabled=false


sql_server_host=master1


sql_server_port=10000


重启hue


build/env/bin/supervisor


4.6.7. 页面展示


Scala接口页面



hadoop 可视化管理 hadoop可视化界面_hue_17


 



hadoop 可视化管理 hadoop可视化界面_hadoop_18


 


Pythonspark



hadoop 可视化管理 hadoop可视化界面_hadoop 可视化管理_19


 



hadoop 可视化管理 hadoop可视化界面_hive_20


 


提交任务



hadoop 可视化管理 hadoop可视化界面_hive_21