hue框架介紹和安裝部署


大家好,我是來自內蒙古的小哥,我現在在北京學習大數據,我想把學到的東西分享給大家,想和大家一起學習

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鏈接

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<qW5o   #  這里輸入密鑰為了保證唯一性可以輸入任何參數只要唯一即可

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

 

2.3、創建mysql數據庫

創建hue數據庫

create database hue default character set utf8 default collate utf8_general_ci;

注意:要為hue這個數據庫創建對應的用戶,並分配權限

grant all on hue.* to 'hue'@'%' identified by 'hue';

2.4、准備進行編譯

cd /export/servers/hue-3.9.0-cdh5.14.0

make apps

 

2.5、linux系統添加普通用戶hue

useradd hue

passwd hue

 

2.6、啟動hue進程

cd /export/servers/hue-3.9.0-cdh5.14.0/

build/env/bin/supervisor

2.7、頁面訪問

http://node03:8888

第一次訪問的時候,需要設置管理員用戶和密碼

我們這里的管理員的用戶名與密碼盡量保持與我們安裝hadoop的用戶名和密碼一致,

我們安裝hadoop的用戶名與密碼分別是root  123456

初次登錄使用root用戶,密碼為123456

 

 

 

進入之后發現我們的hue頁面報錯了,這個錯誤主要是因為hive的原因,因為我們的hue與hive集成的時候出錯了,所以我們需要配置我們的hue與hive進行集成,接下里就看看我們的hue與hive以及hadoop如何進行集成

 

3、hue與其他框架的集成

3.1、hue與hadoop的HDFS以及yarn集成

第一步:更改所有hadoop節點的core-site.xml配置

記得更改完core-site.xml之后一定要重啟hdfs與yarn集群

三台機器更改core-site.xml

<property>

<name>hadoop.proxyuser.root.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.root.groups</name>

<value>*</value>

</property>

第二步:更改所有hadoop節點的hdfs-site.xml

<property>

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

      <value>true</value>

    </property>

第三步:重啟hadoop集群

在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

 

第四步:停止hue的服務,並繼續配置hue.ini

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

 

3.2、配置hue與hive集成

如果需要配置hue與hive的集成,我們需要啟動hive的metastore服務以及hiveserver2服務(impala需要hive的metastore服務,hue需要hvie的hiveserver2服務)

更改hue的配置hue.ini

修改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

啟動hive的metastore服務

去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了

 

3.3、配置hue與impala的集成

停止hue的服務進程

修改hue.ini配置文件

[impala]

  server_host=node03

  server_port=21050

  impala_conf_dir=/etc/impala/conf

3.4、配置hue與mysql的集成

找到databases 這個選項,將這個選項下面的mysql注釋給打開,然后配置mysql即可,大概在1547行

[[[mysql]]]

      nice_name="My SQL DB"

      engine=mysql

      host=node03.hadoop.com

      port=3306

      user=root

      password=123456

 

3.5、重新啟動hue的服務

cd /export/servers/hue-3.9.0-cdh5.14.0/

build/env/bin/supervisor

 

3.6、解決hive以及impala執行權限不足的問題

在我們hive當中執行任意的查詢,只要是需要跑MR的程序,就會報錯,發現權限不夠的異常,具體詳細信息如下:

 

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=<number>
INFO  : In order to limit the maximum number of reducers:
INFO  :   set hive.exec.reducers.max=<number>
INFO  : In order to set a constant number of reducers:
INFO  :   set mapreduce.job.reduces=<number>
ERROR : Job Submission failed with exception 'org.apache.hadoop.security.AccessControlException(Permission denied: user=admin, access=EXECUTE, inode="/tmp":root:supergroup:drwxrwx---

 

我們需要給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的任務就不會報錯了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM