HUE简介及编译

2019-03-12 16:58:38 浏览数 (1)

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。

放弃不难,但坚持很酷~

一、HUE简介

Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的。通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等。很早以前就听说过Hue的便利与强大,一直没能亲自尝试使用,下面先通过官网给出的特性,通过翻译原文简单了解一下Hue所支持的功能特性集合:

  • 默认基于轻量级sqlite数据库管理会话数据,用户认证和授权,可以自定义为MySQL、Postgresql,以及Oracle
  • 基于文件浏览器(File Browser)访问HDFS
  • 基于Hive编辑器来开发和运行Hive查询
  • 支持基于Solr进行搜索的应用,并提供可视化的数据视图,以及仪表板(Dashboard)
  • 支持基于Impala的应用进行交互式查询
  • 支持NoteBook,其NoteBook支持多种编程语言,比如py-spark、scala等
  • 支持Pig编辑器,并能够提交脚本任务
  • 支持Oozie编辑器,可以通过仪表板提交和监控Workflow、Coordinator和Bundle
  • 支持HBase浏览器,能够可视化数据、查询数据、修改HBase表
  • 支持Metastore浏览器,可以访问Hive的元数据,以及HCatalog
  • 支持Job浏览器,能够访问MapReduce Job(MR1/MR2-YARN)
  • 支持Job设计器,能够创建MapReduce/Streaming/Java Job
  • 支持Sqoop编辑器和仪表板(Dashboard)
  • 支持ZooKeeper浏览器和编辑器
  • 支持MySql、PostGresql、Sqlite和Oracle数据库查询编辑器

二、源码下载

hue版本库:http://cloudera.github.io/hue/latest/,目前HUE最新版是4.3.0

三、准备工作

我下载的HUE-3.12.0版本:

http://gethue.com/downloads/releases/3.12.0/hue-3.12.0.tgz

下载tgz包,使用tar -zxvf命令将其放到/usr/local/目录下,改名为:hue

四、开始编译

代码语言:javascript复制
cd /usr/local/hue
make apps

HUE编译成功之后,文件夹内多了一个build文件,build分为envstatic文件,其中env文件内含启动文件,而static文件内有相关联的一些组件。

五、HUE编译问题汇总

通过make apps报错来提示需要下载哪些相关工具包:

1. error: command 'gcc' failed with exit status 1
代码语言:javascript复制
yum install -y gcc openssl-devel
yum install -y gcc gcc-c   kernel-devel
yum install -y libxslt-devel
yum install -y gmp-devel
yum install -y sqlite-devel
2. building '_cffi_backend' extension
代码语言:javascript复制
yum install -y libffi-devel openssl-devel
3. building '_ldap' extension
代码语言:javascript复制
yum install -y openldap-devel 
4. EnvironmentError: mysql_config not found
代码语言:javascript复制
yum install -y mysql-server mysql mysql-devel

六、启停HUE

HUE编译成功之后,我们需要启动HUE服务,建议使用非root用户启动,比如hue用户:

1. 创建hue用户
代码语言:javascript复制
# 创建hue用户
useradd hue
# 将hue源码的用户所有者/组改为hue
chown -R hue:hue /usr/local/hue
2. 启动hue
代码语言:javascript复制
# hue默认使用sqlite引擎
# 初始化数据库
/usr/local/hue/build/env/bin/hue syncdb --noinput
/usr/local/hue/build/env/bin/hue migrate
# 启动hue
/usr/local/hue/build/env/bin/supervisor
3. 停止hue
  • 一般情况下,直接使用Ctrl c来停止hue服务
  • 如果将hue在后台运行的话,可以使用kill命令:
代码语言:javascript复制
ps -ef | grep hue | grep -v grep | awk '{print $2}' | xargs kill -9

七、HUE启动问题汇总

1. 启动时错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
代码语言:javascript复制
# 121行,将"_"去掉。
vim /usr/local/hue/desktop/core/src/desktop/management/commands/runcherrypyserver.py
2. 启动hue web端 报错误:OperationalError: attempt to write a readonly database
代码语言:javascript复制
# 启动hue server的用户没有权限去写入默认sqlite DB,同时确保安装目录下所有文件的owner都是hue用户
chown -R hue:hue hue
3. IOError: [Errno 2] No such file or directory: '/var/log/hue/syncdb.log'

由于我通过/usr/local/hue/desktop/conf/log.conf修改了日志输出路径,将相关日志输出到了/var/log/hue目录下。

报错信息:

代码语言:javascript复制
 resource_management.core.exceptions.ExecutionFailed: Execution of '/usr/local/hue/build/env/bin/hue syncdb --noinput' returned 1. Traceback (most recent call last):

解决办法:

代码语言:javascript复制
cd /var/log     
mkdir hue
chown -R hue:hue hue
vim /var/log/hue/syncdb.log
chown -R hue:hue syncdb.log

0 人点赞