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数据库等等。
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
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
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
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
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. 操作数据库
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
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
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版本
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接口页面
Pythonspark
提交任务