- Hue概述
Hue是开源的Apache Hadoop UI系统(HUE=HadoopUser Experience),最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等。Hue所支持的功能特性集合:1.认基于轻量级sqlite数据库管理会话数据,用户认证和授权,可以自定义更改为MySQL、Postgresql,以及Oracle等; 2.基于文件浏览器(File Browser)访问HDFS; 3.基于Hive编辑器来开发和运行Hive查询;4.支持基于Solr(读音: SOLer)进行搜索的应用,并提供可视化的数据视图,以及仪表板(Dashboard); 5.支持基于Impala的应用进行交互式查询; 6.支持Spark编辑器和仪表板(Dashboard); 7.支持Pig编辑器,并能够提交脚本任务; 8.支持Oozie编辑器,可以通过仪表板提交和监控Workflow、Coordinator和Bundle; 9.支持HBase浏览器,能够可视化数据、查询数据、修改HBase表; 10.支持Metastore浏览器,可以访问Hive的元数据,以及HCatalog; 11.支持Job浏览器,能够访问MapReduce Job(MR1/MR2-YARN); 12.支持Job设计器,能够创建MapReduce/Streaming/Java Job; 13.支持Sqoop 2编辑器和仪表板(Dashboard); 14.支持ZooKeeper浏览器和编辑器; 15.支持MySql、PostGresql、Sqlite和Oracle数据库查询编辑器。
Hue的安装并不是那么简单,因为官方并没有编译好的,需要我们自己从github上下载源码、安装依赖、自己编译安装,编译的过程中最难也就是各种依赖缺失报错,本文将实际来进行下载-编译-安装-配置-运行hue的完整的操作过程。
- 环境准备
- CentOS6.8系统(虚拟机)
Jdk1.8
Root用户启动hdfs、yarn
正常连接外网
- hue源码包
下载地址:http://archive.cloudera.com/cdh5/cdh/5/hue-3.9.0-cdh5.5.4.tar.gz
官方文档:http://archive.cloudera.com/cdh5/cdh/5/hue-3.9.0-cdh5.5.4/manual.html
- maven环境
- 下载
https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/
下载apache-maven-3.3.9-bin.tar.gz
- 安装
- 上传并解压
将安装包并上传到/opt/software目录
[root@hadoop003 software]# pwd
/opt/software
[root@hadoop003 software]# ll
总用量 879260
-rw-r--r--. 1 root root 55711670 11月 15 11:10 apache-flume-1.7.0-bin.tar.gz
-rw-r--r--. 1 root root 92834839 11月 13 09:54 apache-hive-1.2.1-bin.tar.gz
-rw-r--r--. 1 root root 8491533 12月 10 22:27 apache-maven-3.3.9-bin.tar.gz
解压到/opt/module目录
[root@hadoop003 software]# tar -zxvf apache-maven-3.3.9-bin.tar.gz -C /opt/module/
[root@hadoop003 software]# cd /opt/module/apache-maven-3.3.9/
[root@hadoop003 apache-maven-3.3.9]# pwd
/opt/module/apache-maven-3.3.9
- 配置环境变量
[root@hadoop003 apache-maven-3.3.9]# vi /etc/profile
在最后一行添加
#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.3.9/
export PATH=$PATH:$MAVEN_HOME/bin
- 验证安装成功
重新加载环境变量,并验证maven是否安装成功
[root@hadoop003 apache-maven-3.3.9]# source /etc/profile
[root@hadoop003 apache-maven-3.3.9]# mvn -version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /opt/module/apache-maven-3.3.9
Java version: 1.8.0_144, vendor: Oracle Corporation
Java home: /opt/module/jdk1.8.0_144/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-642.el6.x86_64", arch: "amd64", family: "unix"
- 修改maven的本地仓库位置
[root@hadoop003 apache-maven-3.3.9]# mkdir repo
[root@hadoop003 apache-maven-3.3.9]# cd repo/
[root@hadoop003 repo]# pwd
/opt/module/apache-maven-3.3.9/repo
修改本地库路径:
[root@hadoop003 apache-maven-3.3.9]# vim conf/settings.xml
修改前:
修改后:
在settings.xml文件中添加镜像下载点,加快下载速度,比如可添加国内镜像:
找到如下位置,添加红色部分。
<mirrors>
…
…
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
- 安装hue
- 上传并解压hue
将hue的安装包上传到/opt/software目录下
[root@hadoop003 software]# ll
总用量 950156
-rw-r--r--. 1 root root 72594458 12月 10 22:46 hue-3.9.0-cdh5.5.4.tar.gz
解压至/opt/module
[root@hadoop003 software]# tar -zxvf hue-3.9.0-cdh5.5.4.tar.gz -C /opt/module/
[root@hadoop003 software]# cd /opt/module/hue-3.9.0-cdh5.5.4/
[root@hadoop003 hue-3.9.0-cdh5.5.4]# ll
总用量 80
drwxr-xr-x. 21 1106 4001 4096 4月 26 2016 apps
drwxr-xr-x. 3 1106 4001 4096 4月 26 2016 cloudera
drwxr-xr-x. 5 1106 4001 4096 4月 26 2016 desktop
drwxr-xr-x. 6 1106 4001 4096 4月 26 2016 docs
drwxr-xr-x. 3 1106 4001 4096 4月 26 2016 ext
-rw-r--r--. 1 1106 4001 11358 4月 26 2016 LICENSE.txt
-rw-r--r--. 1 1106 4001 4742 4月 26 2016 Makefile
-rw-r--r--. 1 1106 4001 8505 4月 26 2016 Makefile.sdk
-rw-r--r--. 1 1106 4001 3531 4月 26 2016 Makefile.vars
-rw-r--r--. 1 1106 4001 2192 4月 26 2016 Makefile.vars.priv
drwxr-xr-x. 2 1106 4001 4096 4月 26 2016 maven
-rw-r--r--. 1 1106 4001 801 4月 26 2016 NOTICE.txt
-rw-r--r--. 1 1106 4001 1305 4月 26 2016 README
drwxr-xr-x. 5 1106 4001 4096 4月 26 2016 tools
-rw-r--r--. 1 1106 4001 932 4月 26 2016 VERSION
- 安装编译hue用到的依赖
全部安装
yum install -y gcc gcc-c++ libxml2-devel libxslt-devel cyrus-sasl-devel cyrus-sasl-gssapi python-devel python-setuptools python-simplejson sqlite-devel ant libsasl2-dev libsasl2-modules-gssapi-mit libkrb5-dev libtidy-0.99-0 openldap-devel libldap2-dev openldap-devel krb5-devel gmp-devel openssl-devel
安装mysql-devel:
直接采用yum安装的的mysql-devel的版本可能不符,因此,单独安装。
看看你安装的mysql版本,选择适合自己的版本devel和shared
单独安装mysql-devel
上传MySQL-devel-5.6.24-1.el6.x86_64.rpm、MySQL-shared-5.6.24-1.el6.x86_64.rpm
[root@hadoop003 hue-3.9.0-cdh5.5.4]# rpm -ivh /opt/software/MySQL-devel-5.6.24-1.el6.x86_64.rpm
[root@hadoop003 hue-3.9.0-cdh5.5.4]# rpm -ivh /opt/software/MySQL-shared-5.6.24-1.el6.x86_64.rpm
- 添加hue用户
因为hue的默认用户不是使用root用户,所以需要增加hue用户,用hue用户来编译和运行
useradd hue
passwd hue 密码统一设置为 (我的是hadoop)
chown -R hue:hue hue-3.9.0-cdh5.5.4/
切换为hue用户
- 编译hue
[hue@hadoop003 hue-3.9.0-cdh5.5.4]# make apps
Post-processed 'useradmin/art/useradmin-logo.png' as 'useradmin/art/useradmin-logo.e691a8a0fe4e.png'
Post-processed 'zookeeper/css/zookeeper.css' as 'zookeeper/css/zookeeper.dab3cbab10bb.css'
Post-processed 'zookeeper/help/index.html' as 'zookeeper/help/index.7570dbb625f3.html'
Post-processed 'zookeeper/art/icon_zookeeper_24.png' as 'zookeeper/art/icon_zookeeper_24.e3168d30a559.png'
Post-processed 'zookeeper/art/icon_zookeeper_48.png' as 'zookeeper/art/icon_zookeeper_48.21fa694512f1.png'
Post-processed 'zookeeper/art/line_icons.png' as 'zookeeper/art/line_icons.f50a9ca444bf.png'
Post-processed 'zookeeper/js/base64.js' as 'zookeeper/js/base64.ce5e02af31e5.js'
907 static files copied to '/opt/module/hue-3.9.0-cdh5.5.4/build/static', 907 post-processed.
make[1]: Leaving directory `/opt/module/hue-3.9.0-cdh5.5.4/apps'
至此,hue已编译并安装成功。
- Hue基本配置和集成
注意hue的配置全部采用hue用户来完成。
- Hue的基本配置
- 配置hue.ini
[hue@hadoop003 hue-3.9.0-cdh5.5.4]# pwd
/opt/module/hue-3.9.0-cdh5.5.4
[hue@hadoop003 hue-3.9.0-cdh5.5.4]# vim desktop/conf/hue.ini
# Set this to a random string, the longer the better.
# This is used for secure hashing in the session store.
secret_key=jFE93j;2[290-eiw.KEiwN2s3['d;/.q[eIW^y#e=+Iei*@Mn<qW5o
# Execute this script to produce the Django secret key. This will be used when
# `secret_key` is not set.
## secret_key_script=
# Webserver listens on this address and port
http_host=hadoop003
http_port=8888
# Time zone name
time_zone=Asia/Shanghai
- 修改权限和启动服务
请检查desktop目录下的desktop.db文件和desktop/conf目录下的hue.ini文件是否为hue用户组的hue用户,如果不是,请修改。
chown hue:hue /opt/module/hue-3.9.0-cdh5.5.4/desktop/desktop.db
chown hue:hue /opt/module/hue-3.9.0-cdh5.5.4/desktop/conf/hue.ini
#修改desktop目录下的desktop.pb目录的权限
chmod o+w /opt/module/hue-3.9.0-cdh5.5.4/desktop/desktop.db
#在build目录下启动hue服务
build/env/bin/supervisor
- 查看Hue的WEB界面
访问地址:http://hadoop003:8888
第一次访问,会让创建一个用户,这个用户是hue软件的超级用户,拥有的权限比较多
创建一个hue用户密码是hadoop。
登录成功后即可进入hue主页面:
账号:hue
密码:hadoop
- Hue和HDFS集成
- 修改HDFS的2个配置文件
修改core-site.xml配置文件
该配置文件路径:/opt/module/hadoop-2.7.2/etc/hadoop
在该文件中添加如下内容:
<!--开启添加hue用户和用户组的信息-->
<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>
修改hdfs-site.xml配置文件
切换到root用户,用root用户身份修改
该配置文件路径:/opt/module/hadoop-2.7.2/etc/hadoop
在该文件中添加如下内容:
<!--开启webhdfs-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
将修改的配置文件分发到其他节点
[root@hadoop003 module]# scp /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml hadoop004:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 module]# scp /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml hadoop005:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 module]# scp /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml hadoop004:/opt/module/hadoop-2.7.2/etc/hadoop/
[root@hadoop003 module]# scp /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml hadoop005:/opt/module/hadoop-2.7.2/etc/hadoop/
重启hdfs和yarn
[root@hadoop003 hadoop-2.7.2]# sbin/stop-dfs.sh
[root@hadoop003 hadoop-2.7.2]# sbin/start-dfs.sh
[root@hadoop004 hadoop-2.7.2]# sbin/stop-yarn.sh
[root@hadoop004 hadoop-2.7.2]# sbin/start-yarn.sh
- 配置hue.ini
切换到hue用户
../hue-3.9.0-cdh5.5.4/desktop/conf/
在[[hdfs_clusters]]标签下进行hdfs的配置:
[[hdfs_clusters]]
# HA support by using HttpFs
[[[default]]]
# Enter the filesystem uri
fs_defaultfs=hdfs://hadoop003:9000
# NameNode logical name.
## logical_name=
# 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
webhdfs_url=http://hadoop003:50070/webhdfs/v1
# Change this if your HDFS cluster is Kerberos-secured
## security_enabled=false
# In secure mode (HTTPS), if SSL certificates from YARN Rest APIs
# have to be verified against certificate authority
## ssl_cert_ca_verify=True
# Directory of the Hadoop configuration
## hadoop_conf_dir=$HADOOP_CONF_DIR when set or '/etc/hadoop/conf'
hadoop_conf_dir=/opt/module/hadoop-2.7.2/etc/hadoop
hadoop_hdfs_home=/opt/module/hadoop-2.7.2
hadoop_bin=/opt/module/hadoop-2.7.2/bin
- 重启hue并验证
./build/env/bin/supervisor
[hue@hadoop003 fs]$ pwd
/opt/module/hue-3.9.0-cdh5.5.4/desktop/libs/hadoop/src/hadoop/fs
[hue@hadoop003 fs]$ vim /opt/module/hue-3.9.0-cdh5.5.4/desktop/libs/hadoop/src/hadoop/fs/webhdfs.py
将此处改为root
切换root用户,给myhueadmin用户加可写权限
hadoop fs -chmod o+w /user/
接下来,再进行创建,发现创建成功。
在hue的web界面管理HDFS
在该界面里可以正常查看HDFS的文件夹和文件,还可以对文件的内容进行查看,但根据上述配置还不能对文件进行编辑。
- Hue和YARN集成
- 配置hue.ini
在[[yarn_clusters]]标签下进行yarn的配置:
[[yarn_clusters]]
[[[default]]]
# Enter the host on which you are running the ResourceManager
resourcemanager_host=hadoop004
# The port where the ResourceManager IPC listens on
resourcemanager_port=8032
# Whether to submit jobs to this cluster
submit_to=True
# Resource Manager logical name (required for HA)
## logical_name=
# Change this if your YARN cluster is Kerberos-secured
## security_enabled=false
# URL of the ResourceManager API
resourcemanager_api_url=http://hadoop004:8088
# URL of the ProxyServer API
proxy_api_url=http://hadoop004:8088
# URL of the HistoryServer API
history_server_api_url=http://hadoop005:19888
- 重启hue并验证
./build/env/bin/supervisor
修改配置文件后重新启动yarn和hue服务。
插入数据
点击该表,插入数据。