当前位置:   article > 正文

进击大数据系列(十五)Hadoop 图形化管理系统 Hue

进击大数据系列(十五)Hadoop 图形化管理系统 Hue

点击下方名片,设为星标

回复“1024”获取2TB学习资源!

前面介绍了 Hadoop 数据仓库 Hive计算引擎 Spark实时计算流计算引擎Flink数据库 Hbase任务调度器 Oozie数据同步工具 Sqoop分布式采集系统 Flume数据分析引擎 Apache Pig 等相关的知识点,今天我将详细的为大家介绍 大数据 Hadoop 图形化管理系统 Hue 相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!

Hue 概述

HUE=Hadoop User Experiencebf304b06709d81d9dd5a70202d0b06fa.pngHue 是一个开源的 Apache Hadoop UI 系统,最早是由 Cloudera Desktop 演化而来,由 Cloudera 贡献给开源社区,它是基于 Python Web 框架 Django 实现的。

通过使用 Hue 我们可以在浏览器端的 Web 控制台上与 Hadoop 集群进行交互来分析处理数据,例如操作 HDFS 上的数据,运行 MapReduce Job,执行 Hive 的 SQL 语句,浏览 HBase 数据库等等。

HUE 链接
  • Site: http://gethue.com/

  • Github: https://github.com/cloudera/hue

  • Reviews: https://review.cloudera.org

Hue 架构

从总体上来讲,Hue应用采用的是B/S架构,该web应用的后台采用python编程语言别写的。大体上可以分为三层,分别是前端view层、Web服务层和Backend服务层。Web服务层和Backend服务层之间使用RPC的方式调用。b7887b0d3b9c1edb7f374448888ae53f.png8e871bb344f820549e6655b550b996f7.png

Hue 核心功能

  • SQL 编辑器,支持 Hive, Impala, MySQL, Oracle, PostgreSQL, SparkSQL, Solr SQL, Phoenix…

  • 搜索引擎 Solr 的各种图表

  • Spark 和 Hadoop 的友好界面支持

  • 支持调度系统 Apache Oozie,可进行 workflow 的编辑、查看

HUE 提供的这些功能相比 Hadoop 生态各组件提供的界面更加友好,但是一些需要 debug 的场景可能还是需要使用原生系统才能更加深入的找到错误的原因。

HUE 中查看 Oozie workflow 时,也可以很方便的看到整个 workflow 的 DAG 图,不过在最新版本中已经将 DAG 图去掉了,只能看到 workflow 中的 action 列表和他们之间的跳转关系,想要看 DAG 图的仍然可以使用 oozie 原生的界面系统查看。

  • 1,访问 HDFS 和文件浏览

  • 2,通过 web 调试和开发 hive 以及数据结果展示

  • 3,查询 solr 和结果展示,报表生成

  • 4,通过 web 调试和开发 impala 交互式 SQL Query

  • 5,spark 调试和开发

  • 7,oozie 任务的开发,监控,和工作流协调调度

  • 8,Hbase 数据查询和修改,数据展示

  • 9,Hive 的元数据(metastore)查询

  • 10,MapReduce 任务进度查看,日志追踪

  • 11,创建和提交 MapReduce,Streaming,Java job 任务

  • 12,Sqoop2 的开发和调试

  • 13,Zookeeper 的浏览和编辑

  • 14,数据库(MySQL,PostGres,SQlite,Oracle)的查询和展示

一句话总结:Hue 是一个友好的界面集成框架,可以集成我们各种学习过的以及将要学习的框架,一个界面就可以做到查看以及执行所有的框架。

更多关于大数据 Hadoop系列的学习文章,请参阅:大数据 Hadoop 系列,本系列持续更新中。

Hue 部署与配置

环境说明

Hue的安,官方并没有编译好的软件包,需要从github上或者Hue官网上下载源码、安装依赖、编译安装。

  1. 官方网站:https://gethue.com/
  2. 源码下载:https://docs.gethue.com/releases/
  3. (这里用的是4.8.0版本:https://cdn.gethue.com/downloads/hue-4.8.0.tgz)
  4. 依赖环境:https://docs.gethue.com/administrator/installation/dependencies/
  5. 开发向导:https://docs.gethue.com/developer/development/#dependencies

Hue官网说明:
fee9e27ebe3b208bcf7007132e33b6b3.png已经有的环境:

  1. 操作系统:CentOS Linux release 7.2.1511 (Core)
  2. Git:1.8.3.1
  3. JDK:jdk1.8.0_45
  4. Maven:apache-maven-3.8.4-bin
  5. MySQL:mysql-5.6.23-linux-glibc2.5-x86_64
  6. Python:2.7.5
安装依赖
下载Hue源码包:
wget https://cdn.gethue.com/downloads/hue-4.8.0.tgz
安装必要的依赖

(需要sudo权限,或者root用户先执行):

yum -y 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
Node.js 安装

之前用node-v16.13.0-linux-x64.tar.xz这个版本,编译Hue一直报错,没有编译成功,换成v14.16.0版本的编译成功了,可能V16版本有不支持。

  1. wget https://nodejs.org/dist/v14.16.0/node-v14.16.0-linux-x64.tar.gz
  2. #然后解压配置环境变量即可(我再root用户下安装的Node.js)。
编译 Hue

解压Hue源码包,进入hue源码目录,进行编译。使用 PREFIX 指定安装 Hue 的路径。

  1. tar -zxvf hue-4.8.0.tgz -C ~/sourcecode/
  2. cd ~/sourcecode/hue-4.8.0/
  3. #然后执行命令,进行编译:
  4. [ruoze@hadoop001 hue-4.8.0]$ PREFIX=/home/ruoze/app/hue make install

结果:
c893c227d5861d085cbc1a7f913075ff.png编译结果并不顺利,如果出现了什么错误需要根据具体的错误进行调整,比如缺少什么依赖,需要去安装缺少的依赖等。

通过Docker快速安装

很多安装方式,可以参考GitHub上的说明,还有快速安装数据源的方式:https://docs.gethue.com/quickstart/

docker run -it -p 8888:8888 gethue/hue:latest

Kubernetes:

  1. helm repo add gethue https://helm.gethue.com
  2. helm repo update
  3. helm install hue gethue/hue

查看安装是否成功

  1. $ docker ps|grep hue
  2. $ netstat -tnlp|grep 8888

a4002d9f2e8a5fc8001bc88810207ae9.png通过 http://server_ip:888828890ba9330a7f090be1500e38234c42.png创建超级用户e16761911c7f9e484a110a45b2f954fe.png登录之后96d3e712356fde4f4e1bcd538cbc7ab0.png089c5b386e877ad58fdd138f952115d9.png更多关于大数据 Hadoop系列的学习文章,请参阅:大数据 Hadoop 系列,本系列持续更新中。

Hue部署以及集成HDFS、YARN、HIVE及MYSQL

HUE与Hadoop集成(hdfs、yarn)

在 hdfs-site.xml 中增加配置:

  1. <!-- HUE -->
  2. <property>
  3.   <!-- HDFS Web服务 -->
  4.   <name>dfs.webhdfs.enabled</name>
  5.   <value>true</value>
  6. </property>
  7. <property>
  8.   <name>dfs.permissions.enabled</name>
  9.   <value>false</value>
  10. </property>

在core-site.xml中增加配置:

  1. <!-- #设置Hadoop集群的代理用户 -->
  2.    <!-- HUE -->
  3. <property>
  4.   <name>hadoop.proxyuser.ruoze.hosts</name>
  5.   <value>*</value>
  6. </property>
  7. <!-- #设置Hadoop集群的代理用户组 -->
  8. <property>
  9.   <name>hadoop.proxyuser.ruoze.groups</name>
  10.   <value>*</value>
  11. </property>

增加 httpfs-site.xml 文件,加入配置

  1. <!-- HUE -->
  2. <property>
  3.   <name>httpfs.proxyuser.ruoze.hosts</name>
  4.   <value>*</value>
  5. </property>
  6. <property>
  7.   <name>httpfs.proxyuser.ruoze.groups</name>
  8.   <value>*</value>
  9. </property>

修改完,需要重启hdfs服务。

Hue配置
  1. #进入hue配置目录 修改HUE配置文件hue.ini
  2. cd desktop/conf
  3. #编辑 hue.ini 文件,修改如下:
  4. vi hue.ini
  5. #配置desktop
  6. #hue主机地址
  7. http_host=hadoop001
  8. #端口号
  9. http_port=8000
  10. #时区
  11. time_zone=Asia/Shanghai
  12. dev=true
  13. #服务器用户
  14. server_user=ruoze
  15. #服务器用户组
  16. server_group=ruoze
  17. #默认用户
  18. default_user=ruoze
  19. #默认HDFS超级用户
  20. default_hdfs_superuser=ruoze
  21. #app黑名单,禁用solr,规避报错
  22. app_blacklist=search,impala,hbase,oozie
  23. app_blacklist=impala,security,filebrowser,jobbrowser,rdbms,jobsub,pig,hbase,sqoop,zookeeper,metastore,spark,oozie,indexer
  24. [[database]]
  25. engine=mysql
  26. host=hadoop001
  27. port=3306
  28. user=root
  29. password=password
  30. name=hue
  31. #如下是 HUE与Hadoop集成(hdfs、yarn)
  32. #配置HDFS
  33. #默认文件系统 80209000?
  34. fs_defaultfs=http://hadoop001:9000
  35. #web hdfs的路径
  36. webhdfs_url=http://hadoop001:9870/webhdfs/v1
  37. #Hadoop配置文件目录
  38. hadoop_conf_dir=$HADOOP_HOME/etc/hadoop
  39. #配置YARN
  40. #YARN的主机地址
  41. resourcemanager_host=hadoop001
  42. #YARN API的地址  8088改过的
  43. resourcemanager_api_url=http://hadoop001:8123
  44. #代理API的地址  8088改过的
  45. proxy_api_url=http://hadoop001:8123
  46. #历史服务器的API地址
  47. history_server_api_url=http://hadoop001:19888
  48. resourcemanager_port=8032
  49. submit_to=True
HUE与Hive集成

集成Hive,在启动hue之前,需要启动 Hiveserver2 服务。启动命令:

  1. hive --service metastore &
  2. #或者nohup hive --service metastore 2>&1 &
  3. hive --service hiveserver2 &

配置 $HIVE_HOM/conf/hive-site.xml

  1. <property>
  2.   <name>hive.server2.thrift.port</name>
  3.   <value>10000</value>
  4. </property>
  5. <property>
  6.   <name>hive.server2.thrift.bind.host</name>
  7.   <value>hadoop001</value>
  8. </property>
  9. <property>
  10.   <name>hive.server2.long.polling.timeout</name>
  11.   <value>5000</value>
  12. </property>
  13. <property>
  14.   <name>hive.metastore.uris</name>
  15.   <value>thrift://hadoop001:9083</value>
  16. </property>

然后修改:$HUE_HOME/desktop/conf/hue.ini

  1. #[beeswax]
  2. #Hive主机地址
  3. hive_server_host=hadoop001
  4. #Hive主机端口
  5. hive_server_port=10000
  6. #Hive配置文件目录
  7. hive_conf_dir=$HIVE_HOME/conf
  8. # 注意到注释上说,11是hive3.0
  9. thrift_version=11
HUE与MySQL集成

修改:$HUE_HOME/desktop/conf/hue.ini

  1. # [librdbms] -- [[databases]] -- [[[mysql]]];1639
  2. # 注意: ##[[mysql]] => [[mysql]];两个##要去掉!
  3. # name是database_name
  4. [[[mysql]]]
  5. nice_name="My SQL DB"
  6. name=hue
  7. engine=mysql
  8. host=hadoop001
  9. port=3306
  10. user=root
  11. password=password
初始化Hue的MySQL元数据
  1. #去mysql所在的机器上
  2. #在mysql中创建数据库hue,用来存放元数据
  3. mysql -uroot -ppassword
  4. mysql> create database hue;

然后去Hue家目录

  1. #新建数据库并初始化
  2. cd hue/build/env/bin
  3. ./hue syncdb
  4. ./hue migrate

57725c5c48aa57ac5d6dfb5d8c59942b.png执行完之后,可以去mysql的hue数据库里看到对应的hue元数据。

启动hue
  1. # 在hue安装路径下执行
  2. build/env/bin/supervisor

如下:
e63d5d7aa8a9606460821f37835b0a8c.png然后在浏览器中输入:http://hadoop001:8000/可以看到hue的界面,第一次登陆需要创建hue的用户名和密码,如下:
6e84fd6c1f2c07050357e91e6c52aa3c.png7351a3c1da459bdc1e3bb9a87a955eee.png

Hue界面验证
验证hdfs

如下,可以看到hdfs上的文件:
906c2da4d64287c11bb4aabc173538f8.png

验证Hive

在Hive数据库中执行查询语句如下:
3afbfb242716b0c3c5d909c622e3ea9f.png

验证MySQL
70ebce994ccd672e8417ddde2040a118.png
注意事项

1.Hue集成RDBMS数据库需要在librdbms和notebook两个部分都需要添加相应的配置,否则在Hue界面上无法显示。

2.notebook配置部分需要注意,添加新的配置后覆盖默认的,导致Hive、Impala等不能再Hue上显示,配置时需要将需要的服务都添加上。

3.[[databases]]下可添加多个[[[mysql]]]或其他数据库,如果有多个mysql,分别命名为[[[mysql1]]],[[[mysql2]]]或其他名字区分,除此之外,还要添加notebook。

4.启动hue之前需要:启动Hive metastore、启动hiveserver2。

5.core-site.xml配置中的ruoze用户需要和hue.ini中的用户一致,hue.ini默认为hue用户和组,这里修改成了ruoze用户,也是和Linux用户保持一致。

  1. [desktop]
  2. #服务器用户
  3. server_user=ruoze
  4. #服务器用户组
  5. server_group=ruoze
  6. #默认用户
  7. default_user=ruoze
  8. #默认HDFS超级用户
  9. default_hdfs_superuser=ruoze

6.保证Hive metastore、hiveserver2的端口好不要被占用。

7.中间会出现一些错误,包括依赖、编译、hiveserver2启动、Hue启动、Hue界面都有可能出现报错等,报错的话需要耐心去排查定位错误。

更多关于大数据 Hadoop系列的学习文章,请参阅:大数据 Hadoop 系列,本系列持续更新中。

来源:https://cnblogs.com/MrChenShao/p/11061312.html  https://blog.csdn.net/liweihope/article/details/122869416

读者专属技术群

构建高质量的技术交流社群,欢迎从事后端开发、运维技术进群(备注岗位),相互帮助,一起进步!请文明发言,主要以技术交流、内推、行业探讨为主

广告人士勿入,切勿轻信私聊,防止被骗

df8b722da77492d7b3fdf513089c3a19.jpeg

推荐阅读 点击标题可跳转

卸载 Navicat!事实证明,它更牛逼。。。

聊聊银行的信息科技岗(含各大银行薪资)

微软太不要脸了!网友:巨硬耍流氓又不是一次两次

轻量级博客系统!极速部署上线,几百个页面瞬间生成

月薪一万八,还要什么意义?

学会这几招,快去给你的 Docker 镜像瘦瘦身吧

9e85b314b2c3a105431126d6aab119a4.png

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下在看,加个星标,这样每次新文章推送才会第一时间出现在你的订阅列表里。点在看支持我们吧!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/416526
推荐阅读
相关标签
  

闽ICP备14008679号