阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hue安装配置实践

145次阅读
没有评论

共计 6624 个字符,预计需要花费 17 分钟才能阅读完成。

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 的应用进行交互式查询
  • 支持 Spark 编辑器和仪表板(Dashboard)
  • 支持 Pig 编辑器,并能够提交脚本任务
  • 支持 Oozie 编辑器,可以通过仪表板提交和监控 Workflow、Coordinator 和 Bundle
  • 支持 HBase 浏览器,能够可视化数据、查询数据、修改 HBase 表
  • 支持 Metastore 浏览器,可以访问 Hive 的元数据,以及 HCatalog
  • 支持 Job 浏览器,能够访问 MapReduce Job(MR1/MR2-YARN)
  • 支持 Job 设计器,能够创建 MapReduce/Streaming/Java Job
  • 支持 Sqoop 2 编辑器和仪表板(Dashboard)
  • 支持 ZooKeeper 浏览器和编辑器
  • 支持 MySql、PostGresql、Sqlite 和 Oracle 数据库查询编辑器

下面,我们通过实际安装来验证 Hue 的一些功能。

环境准备

这里,我所基于的基本环境及其配置情况,如下所示:

  • CentOS-6.6 (Final)
  • JDK-1.7.0_25
  • Maven-3.2.1
  • Git-1.7.1
  • Hue-3.7.0(branch-3.7.1)
  • Hadoop-2.2.0
  • Hive-0.14
  • Python-2.6.6

基于上面的软件工具,要保证正确安装和配置。需要说明的是,我们通过 Hue 来执行 Hive 查询,需要启动 HiveServer2 服务:


cd /usr/local/hive
bin/hiveserver2 &

否则通过 Hue Web 控制无法执行 Hive 查询。

安装配置

我新建了一个 hadoop 用户,以 hadoop 用户,首先使用 yum 工具来安装 Hue 相关的依赖软件:


sudo yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel

然后,执行如下命令进行 Hue 软件包的下载构建:


cd /usr/local/
sudo git clone https://github.com/cloudera/hue.git branch-3.7.1
sudo chown -R hadoop:hadoop branch-3.7.1/
cd branch-3.7.1/
make apps

上述过程如果没有任何问题,我们就已经安装好 Hue。Hue 的配置文件为 /usr/local/branch-3.7.1/desktop/conf/pseudo-distributed.ini,默认的配置文件不能正常运行 Hue,所以需要修改其中的内容,与我们对应的 Hadoop 集群配置相对应。该配置文件根据整合不同的软件,将配置分成多个段,每个段下面还有子段,便于管理配置,如下所示(省略子段名称):

  • desktop
  • libsaml
  • libopenid
  • liboauth
  • librdbms
  • hadoop
  • filebrowser
  • liboozie
  • oozie
  • beeswax
  • impala
  • pig
  • sqoop
  • proxy
  • hbase
  • search
  • indexer
  • jobsub
  • jobbrowser
  • zookeeper
  • spark
  • useradmin
  • libsentry

我们很容易根据需要来配置自己需要的内容。我们修改配置文件的情况,如下表所示:

Hue 配置段 Hue 配置项 Hue 配置值 说明
desktop default_hdfs_superuser hadoop HDFS 管理用户
desktop http_host 10.10.4.125 Hue Web Server 所在主机 /IP
desktop http_port 8000 Hue Web Server 服务端口
desktop server_user hadoop 运行 Hue Web Server 的进程用户
desktop server_group hadoop 运行 Hue Web Server 的进程用户组
desktop default_user yanjun Hue 管理员
hadoop/hdfs_clusters fs_defaultfs hdfs://hadoop6:8020 对应 core-site.xml 配置项 fs.defaultFS
hadoop/hdfs_clusters hadoop_conf_dir /usr/local/hadoop/etc/hadoop Hadoop 配置文件目录
hadoop/yarn_clusters resourcemanager_host hadoop6 对应 yarn-site.xml 配置项 yarn.resourcemanager.hostname
hadoop/yarn_clusters resourcemanager_port 8032 ResourceManager 服务端口号
hadoop/yarn_clusters resourcemanager_api_url http://hadoop6:8088 对应于 yarn-site.xml 配置项 yarn.resourcemanager.webapp.address
hadoop/yarn_clusters proxy_api_url http://hadoop6:8888 对应 yarn-site.xml 配置项 yarn.web-proxy.address
hadoop/yarn_clusters history_server_api_url http://hadoo6:19888 对应 mapred-site.xml 配置项 mapreduce.jobhistory.webapp.address
beeswax hive_server_host 10.10.4.125 Hive 所在节点主机名 /IP
beeswax hive_server_port 10000 HiveServer2 服务端口号
beeswax hive_conf_dir /usr/local/hive/conf Hive 配置文件目录

上面主要配置了 Hadoop 集群相关的内容,以及 Hive(beeswax 段配置的是 Hive,通过 HIveServer2 与 Hive 交互)。
最后,启动 Hue 服务,执行如下命令:


cd /usr/local/branch-3.7.1/
build/env/bin/supervisor &

Hue 功能验证

我们主要通过在 Hue Web 控制台上执行 Hive 查询,所以需要准备 Hive 相关的表和数据。

  • Hive 准备

我们首先在 Hive 中创建一个数据库(如果没有权限则授权):


GRANT ALL TO USER hadoop;
CREATE DATABASE user_db;

这里,hadoop 用户是 Hive 的管理用户,可以将全部权限赋给该用户。
创建示例表,建表 DDL 如下所示:


CREATE TABLE user_db.daily_user_info (
  device_type int,
  version string,
  channel string,
  udid string)
PARTITIONED BY (
  stat_date string)
ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\t'
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

准备的数据文件格式,示例如下所示:

.2.1     C-gbnpk     b01b8178b86cebb9fddc035bb238876d
     3.0.7     A-wanglouko     e2b7a3d8713d51c0215c3a4affacbc95
     1.2.7     H-follower     766e7b2d2eedba2996498605fa03ed331.2.7     A-shiry     d2924e24d9dbc887c3bea5a1682204d9
     1.5.1     Z-wammer     f880af48ba2567de0f3f9a6bb70fa962
     1.2.7     H-clouda     aa051d9e2accbae74004d761ec747110
     2.2.13     H-clouda     02a32fd61c60dd2c5d9ed8a826c53be42.5.9     B-ywsy     04cc447ad65dcea5a131d5a993268edf

各个字段之间使用 TAB 分隔,每个字段含义与上面表 user_db.daily_user_info 的字段对应,然后我们将测试数据加载到示例表的各个分区之中:


LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-05.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-05');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-06.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-06');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-07.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-07');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-08.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-08');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-09.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-09');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-10.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-10');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-11.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-11');

可以通过 Hive CLI 接口登录,查看表中数据:


SELECT COUNT(1) FROM daily_user_info;

我这里有 241709545 条记录作为测试数据。

  • Hue 登录页面

Hue 服务启动成功后,可以直接通过浏览器打开连接 http://10.10.4.125:8000/,就可以登录。第一次打开,需要输入默认用户和口令,然后就可以登录进去,如下图所示:
Hue 安装配置实践
首次登录,选择使用的用户即为 Hue 管理员用户,权限很大,可以添加用户并管理用户及其用户组的操作权限。

  • Hue 用户首页

登录成功以后,进入 Hue Web 控制台首页,如下图所示:
Hue 安装配置实践
登录成功后,首先会执行一些基本环境的配置检查工作,它与我们实际修改配置时都指定了哪些应用有关系。

  • Hive 查询编辑器页面

用户登录成功后,选择 Query Editors 下面的 Hive 菜单项,如图所示:
Hue 安装配置实践
在提交查询的时候,由于该查询执行时间较长,可以等待查询执行,最后结果显示在的现房的 Results 标签页上,也可以在执行过程中查看 Hive 后台执行情况。

  • Job 浏览器页面

通过 Job 浏览器(Job Browser)页面 http://10.10.4.125:8000/jobbrowser/,可以查看运行在 Hadoop 集群上各种状态的 Job,包括 Succeeded、Running、Failed、Killed 这 4 种状态,如图所示:
Hue 安装配置实践
如果想要看到 Job 具体执行状态信息,需要正确配置并启动 Hadoop 集群的 JobHistoryServer 和 WebAppProxyServer 服务,可以通过 Web 页面看到相关数据,我们的示例,如图所示:
Hue 安装配置实践
如果想看某个 Job 对应的 MapTask 或者 ReduceTask 执行情况,可以点击对应链接进去,和通过 Hadoop YARN 的 Job Web 管理界面类似,监控起来非常方便。

  • 用户管理和授权认证

以授权管理员用户登录成功后,可以通过点击右上角用户(我这里是 yanjun),下拉列表中有“Manage Users”菜单项,在这里面可以创建新用户,并指定访问权限,如下图所示:
Hue 安装配置实践
上面,我创建了几个用户,并指定用户所属的组(Groups,支持组管理)。实际上,我们可以将不同的 Hue 应用设置为不同的组,然后将新建的用户分配到该相关组,通过这种方式可以控制用户访问 Hue 应用的权限。上面创建并分配权限的用户可以通过设置的用户名和口令登录 Hue Web 管理系统,与各种 Hadoop 相关的应用(不仅仅限于此,如 MySQL、Spark 等)进行交互。

总结

通过上面的了解,以及安装配置过程所遇到的问题,做一个总结:

  • 如果基于 CentOS 环境安装配置 Hue,可能相对复杂一点,不一定能够很容易的配置成功。我开始基于 CentOS-5.11(Final) 进行配置,没有配置成功,可能是使用的 Hue 的版本太高(branch-3.0 和 branch-3.7.1 我都试过),或者可能是 CentOS 依赖的一些软件包无法安装等问题导致的。建议最好使用较新版本的 CentOS,我这里使用的是 CentOS-6.6 (Final),Hue 使用的 branch-3.7.1 源码编译,并且 Python 版本需要 2.6+。
  • 使用 Hue,我们可能会对用户管理及其权限分配也很感兴趣,所以数据存储,可以根据需要使用我们熟悉的其他关系数据库,如 MySQL 等,并做好备份,以防使用 Hue 应用的相关用户数据丢失,造成无法访问 Hadoop 集群等问题。需要修改 Hue 的配置文件,将默认存储方式 sqlite3 改成我们熟悉的关系数据库,目前支持 MySQL、Postgresql,以及 Oracle。
  • 如果有必要,可能结合 Hadoop 集群底层的访问控制机制,如 Kerberos,或者 Hadoop SLA,配合 Hue 的用户管理和授权认证功能,更好地进行访问权限的约束和控制。
  • 根据前面我们提到的 Hue 特性,我们可以根据自己实际的应用场景,来选择不同的 Hue 应用,通过这种插件式的配置来启动应用,通过 Hue 与其交互,如 Oozie、Pig、Spark、HBase 等等。
  • 使用更低版本的 Hive,如 0.12,可能在验证过程中会遇到问题,可以根据 Hive 的版本来选择兼容版本的 Hue 来安装配置。
  • 由于本次安装配置实践,并没有使用 Cloudera 发行的 CDH 软件包,如果使用 CDH 可能会更加顺利一些。

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-07/133365.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计6624字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中