大家好,我是来自内蒙古的小哥,我现在在北京学习大数据,我想把学到的东西分享给大家,想和大家一起学习
hue框架介绍和安装部署
hue全称:HUE=Hadoop User Experience
他是cloudera公司提供的一个web框架,和其他大数据框架整合,提供可视化界面
hue的架构
1.hue UI:hue提供一个可视化的web界面
2.hue server:hue的服务器,对外提供一个web的访问
3.hue db:存储整合框架的信息
1、Hue的介绍
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数据库等等。
HUE链接
- Site: http://gethue.com/
- Github: https://github.com/cloudera/hue
- Reviews: https://review.cloudera.org
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是一个友好的界面集成框架,可以集成我们各种学习过的以及将要学习的框架,一个界面就可以做到查看以及执行所有的框架
2、Hue的安装
Hue的安装支持多种方式,包括rpm包的方式进行安装,tar.gz包的方式进行安装以及cloudera manager的方式来进行安装等,我们这里使用tar.gz包的方式来进行安装
第一步:下载Hue的压缩包并上传到linux解压
Hue的压缩包的下载地址:
http://archive.cloudera.com/cdh5/cdh/5/
我们这里使用的是CDH5.14.0这个对应的版本,具体下载地址为
http://archive.cloudera.com/cdh5/cdh/5/hue-3.9.0-cdh5.14.0.tar.gz
下载然后上传到linux系统,然后进行解压
cd /export/softwares/
tar -zxvf hue-3.9.0-cdh5.14.0.tar.gz -C ../servers/
第二步:编译安装启动
2.1、linux系统安装依赖包:
联网安装各种必须的依赖包
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
2.2、开始配置Hue
cd /export/servers/hue-3.9.0-cdh5.14.0/desktop/conf
vim hue.ini
#通用配置
[desktop]
secret_key=jFE93j;2[290-eiw.KEiwN2s3['d;/.q[eIW^y#e=+Iei*@Mn http_host=node03.hadoop.com is_hue_4=true time_zone=Asia/Shanghai server_user=root server_group=root default_user=root default_hdfs_superuser=root #配置使用mysql作为hue的存储数据库,大概在hue.ini的587行左右 [[database]] engine=mysql host=node03.hadoop.com port=3306 user=root password=123456 name=hue 创建hue数据库 注意:要为hue这个数据库创建对应的用户,并分配权限 cd /export/servers/hue-3.9.0-cdh5.14.0 make apps useradd hue passwd hue cd /export/servers/hue-3.9.0-cdh5.14.0/ build/env/bin/supervisor http://node03:8888 第一次访问的时候,需要设置管理员用户和密码 我们这里的管理员的用户名与密码尽量保持与我们安装hadoop的用户名和密码一致, 我们安装hadoop的用户名与密码分别是root 123456 初次登录使用root用户,密码为123456 进入之后发现我们的hue页面报错了,这个错误主要是因为hive的原因,因为我们的hue与hive集成的时候出错了,所以我们需要配置我们的hue与hive进行集成,接下里就看看我们的hue与hive以及hadoop如何进行集成 记得更改完core-site.xml之后一定要重启hdfs与yarn集群 三台机器更改core-site.xml 在node01机器上面执行以下命令 cd /export/servers/hadoop-2.6.0-cdh5.14.0 sbin/stop-dfs.sh sbin/start-dfs.sh sbin/stop-yarn.sh sbin/start-yarn.sh cd /export/servers/hue-3.9.0-cdh5.14.0/desktop/conf vim hue.ini 配置我们的hue与hdfs集成 [[hdfs_clusters]] [[[default]]] fs_defaultfs=hdfs://node01.hadoop.com:8020 webhdfs_url=http://node01.hadoop.com:50070/webhdfs/v1 hadoop_hdfs_home=/export/servers/hadoop-2.6.0-cdh5.14.0 hadoop_bin=/export/servers/hadoop-2.6.0-cdh5.14.0/bin hadoop_conf_dir=/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop 配置我们的hue与yarn集成 [[yarn_clusters]] [[[default]]] resourcemanager_host=node01 resourcemanager_port=8032 submit_to=True resourcemanager_api_url=http://node01:8088 history_server_api_url=http://node01:19888 如果需要配置hue与hive的集成,我们需要启动hive的metastore服务以及hiveserver2服务(impala需要hive的metastore服务,hue需要hvie的hiveserver2服务) 修改hue.ini [beeswax] hive_server_host=node03.hadoop.com hive_server_port=10000 hive_conf_dir=/export/servers/hive-1.1.0-cdh5.14.0/conf server_conn_timeout=120 auth_username=root auth_password=123456 [metastore] #允许使用hive创建数据库表等操作 enable_new_create_table=true 去node03机器上启动hive的metastore以及hiveserver2服务 cd /export/servers/hive-1.1.0-cdh5.14.0 nohup bin/hive --service metastore & nohup bin/hive --service hiveserver2 & 重新启动hue,然后就可以通过浏览器页面操作hive了 停止hue的服务进程 修改hue.ini配置文件 [impala] server_host=node03 server_port=21050 impala_conf_dir=/etc/impala/conf 找到databases 这个选项,将这个选项下面的mysql注释给打开,然后配置mysql即可,大概在1547行 [[[mysql]]] nice_name="My SQL DB" engine=mysql host=node03.hadoop.com port=3306 user=root password=123456 cd /export/servers/hue-3.9.0-cdh5.14.0/ build/env/bin/supervisor 在我们hive当中执行任意的查询,只要是需要跑MR的程序,就会报错,发现权限不够的异常,具体详细信息如下: 我们需要给hdfs上面的几个目录执行权限即可 hdfs dfs -chmod o+x /tmp hdfs dfs -chmod o+x /tmp/hadoop-yarn hdfs dfs -chmod o+x /tmp/hadoop-yarn/staging 或者我们可以这样执行 hdfs dfs -chmod -R o+x /tmp 可以将/tmp目录下所有的文件及文件夹都赋予权限 继续执行hive的任务就不会报错了2.3、创建mysql数据库
create database hue default character set utf8 default collate utf8_general_ci;
grant all on hue.* to 'hue'@'%' identified by 'hue';
2.4、准备进行编译
2.5、linux系统添加普通用户hue
2.6、启动hue进程
2.7、页面访问
3、hue与其他框架的集成
3.1、hue与hadoop的HDFS以及yarn集成
第一步:更改所有hadoop节点的core-site.xml配置
第二步:更改所有hadoop节点的hdfs-site.xml
第三步:重启hadoop集群
第四步:停止hue的服务,并继续配置hue.ini
3.2、配置hue与hive集成
更改hue的配置hue.ini
启动hive的metastore服务
3.3、配置hue与impala的集成
3.4、配置hue与mysql的集成
3.5、重新启动hue的服务
3.6、解决hive以及impala执行权限不足的问题
INFO : Compiling command(queryId=root_20180625191616_d02efd23-2322-4f3d-9cb3-fc3a06ff4ce0): select count(1) from mystu
INFO : Semantic Analysis Completed
INFO : Returning Hive schema: Schema(fieldSchemas:[FieldSchema(name:_c0, type:bigint, comment:null)], properties:null)
INFO : Completed compiling command(queryId=root_20180625191616_d02efd23-2322-4f3d-9cb3-fc3a06ff4ce0); Time taken: 0.065 seconds
INFO : Concurrency mode is disabled, not creating a lock manager
INFO : Executing command(queryId=root_20180625191616_d02efd23-2322-4f3d-9cb3-fc3a06ff4ce0): select count(1) from mystu
INFO : Query ID = root_20180625191616_d02efd23-2322-4f3d-9cb3-fc3a06ff4ce0
INFO : Total jobs = 1
INFO : Launching Job 1 out of 1
INFO : Starting task [Stage-1:MAPRED] in serial mode
INFO : Number of reduce tasks determined at compile time: 1
INFO : In order to change the average load for a reducer (in bytes):
INFO : set hive.exec.reducers.bytes.per.reducer=
INFO : In order to limit the maximum number of reducers:
INFO : set hive.exec.reducers.max=
INFO : In order to set a constant number of reducers:
INFO : set mapreduce.job.reduces=
ERROR : Job Submission failed with exception 'org.apache.hadoop.security.AccessControlException(Permission denied: user=admin, access=EXECUTE, inode="/tmp":root:supergroup:drwxrwx---