引言
目前网上的HUE安装教程大多是下载直接下载源码进行编译。这种方式非常麻烦,首先需要服务器能够连接外网,其次安装的过程中可能会发现缺很多依赖。这样不但增加了安装的复杂性,也很浪费时间和精力。本文的安装方法是直接用cdh版的rpm包安装的。用这种方式,只要你有rpm包,就可以再内网环境安装,需要的依赖都已经在rpm包之中了,非常的方便简洁。
HUE 安装步骤
下载安装包
http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.15.1/RPMS/x86_64/
去这个网页下载所有hue相关rpm包:
hue-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-beeswax-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-common-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-doc-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-hbase-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-impala-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-pig-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-plugins-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-rdbms-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-search-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-security-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-server-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-spark-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-sqoop-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
hue-zookeeper-3.9.0+cdh5.15.1+8420-1.cdh5.15.1.p0.4.el7.x86_64.rpm
安装rpm包
rpm –ivh –nodeps **.rpm
注意:逐个安装rpm包,注意hue-beeswax 放在最后一个安装,否则编译的时候python会报import Error
编译
安装结束后进入hue目录下执行
make apps
这里编译会提示确实两个文件,直接从其他机器上拷贝过来
scp /usr/lib64/libxslt.so.1 root@10.3.68.127:/usr/lib64/libxslt.so.1
scp /usr/lib64/libexslt.so.0 root@10.3.68.127:/usr/lib64/libexslt.so.0
如果其他机器上找不到就去网上下载。
编译成的输出如下:
验证运行
cd /usr/lib/hue/build/env/bin
./supervisor
访问8888端口打开hue的页面
输入用户名和密码(就是服务器的用户名和密码)登录
将hue数据库切换为mysql
由于hue默认的数据库是sqlite,比较轻量,而且问题也比较多,因此生成环境一般都切换为mysql。
修改hue.ini 中的database小节
将已经按装好的mysql链接信息填入
修改后如下所示
engine=mysql
host=
port=3306
user=root
password=hik12345+
name=hue
Mysql中新建数据库
在mysql中新建名为hue的数据库
初始化数据库
cd /usr/lib/hue/build/env/bin
./hue syncdb
报错如下:
Traceback (most recent call last):
File "./hue", line 9, in <module>
load_entry_point('desktop==3.9.0', 'console_scripts', 'hue')()
File "/usr/lib/hue/desktop/core/src/desktop/manage_entry.py", line 149, in entry
raise e
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory
错误原因:报这个错误是因为mysql没有装全,mysql的所有rpm包如下:
MySQL-client-5.6.41-1.el6.x86_64.rpm
MySQL-devel-5.6.42-1.el6.x86_64.rpm
MySQL-embedded-5.6.42-1.el6.x86_64.rpm
MySQL-server-5.6.41-1.el6.x86_64.rpm
MySQL-shared-5.6.42-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.42-1.el6.x86_64.rpm
MySQL-test-5.6.42-1.el6.x86_64.rpm
我们只按照了client和server,而libmysqlclient_r.so.16 是在MySQL-shared-compat-5.6.42-1.el6.x86_64.rpm里面。
解决:所以把没装的rpm包装起来就行了
运行./hue syncdb 输出如下
运行./hue migrate 输出如下
验证切换
现在数据库已经切换过来了,启动hue。
登入后看到表都还在说明切换成功!
其他可能的问题及解决
可能的问题
问题1
如果左侧导航栏无法刷新出数据库信息的话可能是hive-site.xml关于hiveserver2的参数值没有配置好,比如hive.server2.thrift.bind.host配置的是localhost而不是主机名。
<property>
<name>hive.server2.thrift.bind.host</name>
<value>1.1.1.1 </value>
<description>Bind host on which to run the HiveServer2 Thrift service.</description>
</property>
问题2
hive能创建表,能加载数据,但是无法查询,一查询就报错并退出hive:
错误如下:Exception in thread “main” java.lang.NoSuchMethodError: org.apache.hadoop.hdfs.client.HdfsAdmin.getKeyProvider()Lorg/apache/hadoop/crypto/key/KeyProvider;
解决办法:hadoop客户端版本不对
比如版本如下:
hive为:hive1.1-cdh5.13
hadoop为:hadoop2.6.0-cdh5.5.4
把hive版本替换为:cdh5.5.4后解决问题。
问题3
在hive里创建的表在impala里查不到,是因为元数据信息没有刷新,在impala里执行invalidate metadata命令刷新元数据即可。