美文网首页玩转大数据Java
Hue 编译安装和大数据组件集成配置

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

作者: AlienPaul | 来源:发表于2022-11-07 12:23 被阅读0次

    环境信息

    因使用要求,需要临时在集群中加装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中增加如下配置:

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    

    重启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:

    <property>
      <name>hadoop.proxyuser.hue.hosts</name>
      <value>*</value>
    </property>
    <property>
      <name>hadoop.proxyuser.hue.groups</name>
      <value>*</value>
    </property>
    

    httpfs-site.xml:

    <property>
      <name>httpfs.proxyuser.hue.hosts</name>
      <value>*</value>
    </property>
    <property>
      <name>httpfs.proxyuser.hue.groups</name>
      <value>*</value>
    </property>
    

    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 编译安装和大数据组件集成配置

        本文链接:https://www.haomeiwen.com/subject/vivbtdtx.html