HUE安装与使用

版本:

centos6.4

hue3.7.1

1、介绍

HUE=Hadoop User Experience Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。 
通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览Hbase数据库等等。

2、安装

2.1 安装hue依赖的第三方包

sudo yum install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain gcc gcc-c++ krb5-devel libffi-devel libxml2-devel libxslt-devel make mysql mysql-devel openldap-devel python-devel sqlite-devel gmp-devel

注意:yum 安装ant会自动下载安装openJDK,这样的话会java的版本就会发生变化,可是使用软连接重新改掉/usr/bin/java,使其指向自己安装的java即可。

 
  1. sudo rm /usr/bin/java

  2. sudo ln -s /home/darren/program/java/bin/java /usr/bin/java

注意:本来我是准备安装hue4.2.0的,但是编译hue需要依赖python,但是python2.6中缺少必要的依赖,不能编译hue4.2,安装python2.7后又导致yum失效,由于时间紧任务重,就没有再解决升级python2.7后带来的问题,于是就降低了hue的版本到3.7,之后顺利编译通过。如果已经升级了python2.7,可以尝试安装hue4.

2.2 解压HUE tar包

 
  1. tar -zxvf hue-3.7.1.tgz

  2. mv hue-3.7.1 program/hue

2.3 编译HUE

 
  1. cd program/hue

  2. make apps

几分钟就编译好了

3、配置HUE

vi program/hue/desktop/conf/hue.ini

修改如下配置:

 
  1. secret_key=jFE93j;2[290-eiw.KEiwN2s3['d;/.q[eIW^y#e=+Iei*@Mn<qW5o

  2. http_host=centos1

  3. http_port=8888

  4. time_zone=Asia/Shanghai

4、启动HUE

program/hue/build/env/bin/supervisor  >> /home/darren/program/hue/log/hue.log 2>&1 &

5、访问HUE 页面

http://centos1:8888

第一次会让你创建账户,登录之后如下所示:

到此,HUE就安装配置好了,接下来进行和hadoop,hive的集成。

注意:HUE默认使用的数SQLite数据库,可以更改成其他数据库。

6、配置MySQL数据库

6.1 配置MySQL用户和权限

先使用root用户登录mysql

mysql –u root –p

添加新用户并授权远程访问和本地访问

 
  1. msyql> GRANT ALL PRIVILEGES ON *.* TO 'hue'@'%' IDENTIFIED BY 'hue';

  2. msyql> GRANT ALL PRIVILEGES ON *.* TO 'hue'@'centos1' IDENTIFIED BY 'hue';

  3. msyql> GRANT ALL PRIVILEGES ON *.* TO 'hue'@'localhost' IDENTIFIED BY 'hue';

  4. msyql> flush privileges;

查看权限

msyql> select host, user from user;

使用hue账户登录,创建database hue

 

  1. mysql -u hue -p

  2. msyql> create database hue;

6.2 修改HUE的配置文件

vi program/hue/desktop/conf/hue.ini
 
  1. # Configuration options for specifying the Desktop Database. For more info,

  2. # see http://docs.djangoproject.com/en/1.4/ref/settings/#database-engine

  3. # ------------------------------------------------------------------------

  4. [[database]]

  5. # Database engine is typically one of:

  6. # postgresql_psycopg2, mysql, sqlite3 or oracle.

  7. #

  8. # Note that for sqlite3, 'name', below is a path to the filename. For other backends, it is the database name.

  9. # Note for Oracle, options={'threaded':true} must be set in order to avoid crashes.

  10. # Note for Oracle, you can use the Oracle Service Name by setting "port=0" and then "name=<host>:<port>/<service_name>".

  11. engine=mysql //数据库

  12. host=centos1 //主机名或IP地址

  13. port=3306 //MySQL 端口

  14. user=hue //MySQL 用户

  15. password=hue //MySQL 密码

  16. name=hue //数据库名字

  17. ## options={}

6.3 初始化数据库

该步骤是创建表和插入部分数据。hue的初始化数据表命令由hue/bin/hue syncdb完成,创建期间,需要输入用户名和密码。如下所示:

 
  1. #同步数据库

  2. $> program/hue/build/env/bin/hue syncdb

  3. #导入数据,主要包括oozie、pig、desktop所需要的表

  4. $> program/hue/build/env/bin/hue migrate

注意:这里是两个命令,容易忽略第二个

输入的是机器的用户名和密码

使用hue登录mysql,查看表的生成情况:

 
  1. mysql -u hue -p

  2. mysql> use hue;

  3. mysql> show tables;

 

如果发现表没这么多,那么你一定是忘记执行如下命令了:

#导入数据,主要包括oozie、pig、desktop所需要的表
$> program/hue/build/env/bin/hue migrate

  1. #导入数据,主要包括oozie、pig、desktop所需要的表

  2. $> program/hue/build/env/bin/hue migrate

查看hue进程,杀掉重启

 
  1. netstat -npl | grep 8888

  2. kill -9 xxx

  3. program/hue/build/env/bin/supervisor >> /home/darren/program/hue/log/hue.log 2>&1 &

访问HUE UI界面

使用之前的账户登录即可,没有什么问题,数据库就替换完成了。

7、配置hadoop

7.1 修改hadoop配置文件

vi program/hadoop/etc/hadoop/core-site.xml

添加如下配置,配置hadoop代理用户hadoop.proxyuser.${user}.hosts,第一个user是安装hadoop的user,或者说可以访问hdfs的user,从centos1:50070 -》Utilities-》Browse the file system可以看到的Owner信息,第二个hue是给hue这样的权限,第三个是给httpfs这样的权限:

 
  1. <!-- Hue WebHDFS proxy user setting -->

  2. <property>

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

  4. <value>*</value>

  5. </property>

  6. <property>

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

  8. <value>*</value>

  9. </property>

  10. <property>

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

  12. <value>*</value>

  13. </property>

  14. <property>

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

  16. <value>*</value>

  17. </property>

  18. <property>

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

  20. <value>*</value>

  21. </property>

  22. <property>

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

  24. <value>*</value>

  25. </property>

为什么会有httpfs,httpfs是什么?

HUE与hadoop连接,即访问hadoop文件,可以使用两种方式。

  • WebHDFS

提供高速数据传输,client可以直接和DataNode通信。

  • HttpFS

一个代理服务,方便于集群外部的系统进行集成。注意:HA模式下只能使用该中方式。

高可用模式下需要配置httpfs, 否则报错。

7.2 开启运行HUE web访问HDFS

vi program/hadoop/etc/hadoop/hdfs-site.xml
 
  1. <!-- 设置hue web access -->

  2. <property>

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

  4. <value>true</value>

  5. </property>

7.3 配置httpfs

vi program/hadoop/etc/hadoop/httpfs-site.xml
 
  1. <!-- 配置HUE -->

  2. <property>

  3. <name>httpfs.proxyuser.hue.hosts</name>

  4. <value>*</value>

  5. </property>

  6. <property>

  7. <name>httpfs.proxyuser.hue.groups</name>

  8. <value>*</value>

  9. </property>

7.4 关掉hadoop集群,分发配置文件到其他节点,重新启动

 
  1. stop-all.sh

  2. # 分发,其他省略

  3. scp program/hadoop/etc/hadoop/core-site.xml centos2:~/program/hadoop/etc/hadoop/

  4. # 分发完毕后重启

  5. start-all.sh

7.5 启动httpFS

 
  1. httpfs.sh start

  2. # 启动后检查端口,默认14000

  3. netstat -anop |grep 14000

hadoop的准备工作完毕,接下来配置HUE的配置文件,完成对hadoop的集成

7.6 配置hue.ini,集成hadoop

 
  1. [hadoop]

  2. # Configuration for HDFS NameNode

  3. # ------------------------------------------------------------------------

  4. [[hdfs_clusters]]

  5. # HA support by using HttpFs

  6. [[[default]]]

  7. # Enter the filesystem uri

  8. # 这里我们使用的是hadoop的namenode HA模式,因此只能配置httpfs方式访问hdfs文件

  9. fs_defaultfs=hdfs://mycluster:8020

  10. # NameNode logical name.

  11. logical_name=mycluster

  12. # Use WebHdfs/HttpFs as the communication mechanism.

  13. # Domain should be the NameNode or HttpFs host.

  14. # Default port is 14000 for HttpFs.

  15. # 需要注意的是webhdfs_url指定的是14000的端口

  16. webhdfs_url=http://centos1:14000/webhdfs/v1

  17. # Change this if your HDFS cluster is Kerberos-secured

  18. ## security_enabled=false

  19. # Default umask for file and directory creation, specified in an octal value.

  20. ## umask=022

  21. # hadoop 配置文件路径

  22. hadoop_conf_dir=/home/darren/program/hadoop/etc/hadoop

 
  1. [[yarn_clusters]]

  2. [[[default]]]

  3. # Enter the host on which you are running the ResourceManager

  4. ## resourcemanager_host=localhost

  5. # The port where the ResourceManager IPC listens on

  6. ## resourcemanager_port=8032

  7. # Whether to submit jobs to this cluster

  8. submit_to=True

  9. # Resource Manager logical name (required for HA)

  10. logical_name=mycluster-yarn

  11. # Change this if your YARN cluster is Kerberos-secured

  12. ## security_enabled=false

  13. # URL of the ResourceManager API

  14. # 配置resource manager

  15. resourcemanager_api_url=http://centos1:8088

  16. # URL of the ProxyServer API

  17. ## proxy_api_url=http://localhost:8088

  18. # URL of the HistoryServer API

  19. # 配置 history server

  20. history_server_api_url=http://centos1:19888

  21. # HA support by specifying multiple clusters

 
  1. # Webserver runs as this user

  2. server_user=hue

  3. server_group=hue

  4. # This should be the Hue admin and proxy user

  5. default_user=hue

  6. # This should be the hadoop cluster admin

  7. default_hdfs_superuser=hue

History Server的启动方式:

mr-jobhistory-daemon.sh start historyserver

重新启动HUE

 
  1. netstat -npl | grep 8888

  2. kill -9 xxx

  3. program/hue/build/env/bin/supervisor >> /home/darren/program/hue/log/hue.log 2>&1 &

点击File Browser,可以看到如上信息,当然文件夹是我之前建好的,这说明HDFS集成好了。

点击Job Browser,说明resource manager集成好了

注意:可能会遇到的问题

RemoteException: User darren is not allowed to impersonate darren (error 500)

这个错就需要修改core-site.xml, 如上文所述。

如果报connection refuse,那可能是httpfs没有启动,注意配置httpfs-site.xml如上文所示,并启动httpfs,启动方式如下:

httpfs.sh start

8、Hive集成

hive集成就比较简单了,配置主机,端口和配置文件路径即可

 
  1. [beeswax]

  2. # Host where HiveServer2 is running.

  3. # If Kerberos security is enabled, use fully-qualified domain name (FQDN).

  4. hive_server_host=centos1

  5. # Port where HiveServer2 Thrift server runs on.

  6. hive_server_port=10000

  7. # Hive configuration directory, where hive-site.xml is located

  8. hive_conf_dir=/home/darren/program/hive/conf

注意:集成hive使用的是HiveServer2,所以要求启动HiveServer2服务,启动方式如下:

hive --service hiveserver2 >> /home/darren/program/hive/log/hiveserver2.log 2>&1 &

重新启动HUE,即可看到Hive的数据库和表

到此就集成完了

参考:

快速入门HUE的安装_IT Baicn的博客-CSDN博客_hue安装

HUE安装与使用 - 大道至简(老徐) - 博客园

Hue集成的一些问题_互坑-CSDN博客_您是hue管理员但不是hdfs超级用户

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值