Hue 编译安装和大数据组件集成配置

环境信息

因使用要求,需要临时在集群中加装Hue。Hue所在集群的情况如下:

  • CentOS 7.4
  • Hue 4.10
  • Hadoop 3.x
  • Hive 3.x
  • HBase 2.x

本篇记录Hadoop集群安装Hue的全过程。

Hue编译

Hue 4.10版本下载可在GitHub Release下载:Release Release 4.10 · cloudera/hue (github.com)

在编译前需要在环境环境安装如下内容:

yum install sqlite-devel
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 gmp-devel
yum install npm

然后将下载好的源代码包解压,进入源代码解压的根目录执行:

make install

编译成功后Hue可在编译机启动。如果需要在其他机器部署,需要将usr/local/hue目录打包压缩后复制到目标机器。

安装和基础配置

将上一步编译打包后的Hue解压在目标机器usr/local/hue。然后配置/usr/local/hue/desktop/conf/hue.ini:

http_host=0.0.0.0
http_port=8888
time_zone=Asia/Shanghai
# Webserver runs as this user
server_user=hue
server_group=hue

配置项解释如下:

  • http_host: bind host。Hue绑定什么IP。0.0.0.0表示多网络场景可以用任何一个网络下的IP访问Hue。
  • http_port: HTTP端口号。
  • time_zone: 时区。
  • server_userserver_group: Hue web server启动使用的用户身份。默认为Hue,按需修改。

MySQL元数据同步

Hue自身的配置需要一个外部数据库帮忙存储。默认不配置情况下Hue使用的是sqlite3。sqlite3储存形式仅仅是一个数据库文件。没有自身的服务。经过博客作者验证Hue配置成sqlite3使用的时候还会出现database is locked的错误。所以说除了学习用途不建议Hue配置为默认的sqlite3。建议使用MySQL等其他数据库。

下面给出配置MySQL数据库的步骤。

首先需要修改hue.ini文件的[[database]][[librdbms]]节,如下所示。

 [[database]]
    engine=mysql
    host=mysqlhost
    port=3306
    user=hue
    password=hue
    name=hue

[librdbms]
    [[databases]]
        name=hue
        engine=mysql
        host=mysqlhost
        port=3306
        user=hue
        password=hue

其中name为hue使用的database名称。MySQL中的hue用户,hue数据库和hue用户访问hue数据库的权限需要提前创建并配置好。配置的方法可查阅MySQL相关资料,这里不再赘述。

到这一步,我们创建好的hue数据库里面是空的,没有任何表。因此我们需要hue初始化数据库。执行下面命令创建元数据表:

/usr/local/hue/build/env/bin/hue syncdb
/usr/local/hue/build/env/bin/hue migrate

执行成功后在hue数据库执行show tables,可以发现hue为我们创建好了所有运行时候用到的table。

启动Hue

到这里位置Hue的安装和基本配置已完成。可以尝试启动Hue。启动命令如下:

nohup /usr/local/hue/build/env/bin/supervisor &

然后使用浏览器访问hue的IP 8888端口(按照例子中的配置)。如果可以打开Hue的web页面,说明前面操作无误。可以使用admin/admin创建新用户并登录。

下面介绍Hue集成部分大数据组件的方法。

HDFS文件浏览集成

若使用Hue浏览HDFS中的数据,要求Hadoop开启webHDFS。

hdfs-site.xml中增加如下配置:


    dfs.webhdfs.enabled
    true

重启Hadoop后修改hue.ini

[[hdfs_clusters]]
    [[[default]]]
        fs_defaultfs=hdfs://hadoop_ip:8020
        webhdfs_url=http://hadoop_ip:50070/webhdfs/v1

然后重启Hue。

注意:

如果出现User: xxx is not allowed to impersonate xxx错误,需要增加Hadoop用户代理的配置。类似如下:

core-site.xml:


  hadoop.proxyuser.hue.hosts
  *


  hadoop.proxyuser.hue.groups
  *

httpfs-site.xml:


  httpfs.proxyuser.hue.hosts
  *


  httpfs.proxyuser.hue.groups
  *

HBase集成

HBase要求启动thrift server:

./hbase-daemons.sh start thrift2

默认HBase thrift server端口号为9090。如需修改可参考HBase文档。

然后修改hue.ini

[hbase]
hbase_clusters=(Cluster|hbase_thrift_server_ip:9090)
hbase_conf_dir=/path/to/hbase/conf

其中hbase_clusters为HBase的thrift server地址和端口号,务必按照给出的格式配置,即(Cluster|ip:port)

配置完毕后重启Hue。

Hive集成

Hive集成需要提供hiveserver2的地址和端口号,以及metastore的地址。

修改hue.ini,示例如下:

[beeswax]
hive_server_host=hiveserver2_ip
hive_server_port=10000
hive_server_http_port=10001
hive_metastore_host=metastore_ip
hive_conf_dir=/path/to/hive/conf
# auth_username=
# auth_password=
use_sasl=true

注意,需要配置use_sasl=true否则会出现如下错误:

thrift.transport.TTransport.TTransportException: TSocket read 0 bytes

Hive如果没有开启认证,无需配置auth_usernameauth_password

最后重启Hue。

查询Hive表的时候可能会遇到如下错误:

Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found (code THRIFTTRANSPORT): TTransportException('Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found',)

这个错误说意味着我们没有安装cyrus-sasl。安装的方法为执行:

yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5

Kerberos 集成

修改hue.iniKerberos配置相关部分。如下所示:

 [[kerberos]]
    # Path to Hue's Kerberos keytab file
    # hue使用的keytab
    ## hue_keytab=
    # Kerberos principal name for Hue
    # hue的principal
    ## hue_principal=hue/hostname.foo.com
    # Frequency in seconds with which Hue will renew its keytab
    ## REINIT_FREQUENCY=3600
    # Path to keep Kerberos credentials cached
    # hue的ticket cache,需要配置为default_user配置项对应用户的ticket cache目录(默认为hue,可以通过klist查看)
    ## ccache_path=/var/run/hue/hue_krb5_ccache

HDFS开启Kerberos认证需要配置:

[[hdfs_clusters]]
    # HA support by using HttpFs

    [[[default]]]
      # 省略其他配置……

      # Change this if your HDFS cluster is Kerberos-secured
      security_enabled=true

你可能感兴趣的:(Hue 编译安装和大数据组件集成配置)