美文网首页我爱编程
安装使用Drill-1.10【转】

安装使用Drill-1.10【转】

作者: 明翼 | 来源:发表于2018-05-14 13:00 被阅读72次

    准备材料:

    • jdk-8u121-linux-x64.rpm (运行Drill1.6及其后续版本需要jdk7或8)
    • apache-drill-1.10.0.tar.gz
    • zookeeper-3.4.6
    • hadoop2.x cluster

    一、安装、配置drill:

    ①、解压、安装

    • tar -xzvf apache-drill-1.10.0.tar.gz
    • cp -r apache-drill-1.10.0 /usr/local
    • ln -s apache-drill-1.10.0 drill-1.10

    ②、环境变量配置
    修改/etc/profile,尾部添加:

    ##JAVA
    export JAVA_HOME=/usr/java/jdk1.8.0_121
    export JRE_HOME=$JAVA_HOME/jre
    
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:/usr/local/bin
    
    export LANG=en_US.UTF-8
    
    export DRILL_HOME=/usr/local/drill-1.10
    export PATH=$PATH:$DRILL_HOME/bin
    

    ③、集群模式下配置drill
    在$DRILL_HOME/conf/drill-override.conf文件中,使用Drill cluster ID, 通过指定正确的zookeeper集群地址列表(host1:2181,host2:2181,hostN:2181)来连接上zk的quorum。
    注意:如果在多个节点上安装drill,需要指定同一个Drill cluster ID,所有的drill节点共享同一个集群ID。

    配置样例:

    drill.exec:{
      cluster-id: "<mydrillcluster>",
      zk.connect: "<zkhostname1>:<port>,<zkhostname2>:<port>,<zkhostname3>:<port>"
     }
    

    ④、集群模式下启动drill
    在集群模式下使用drill,必须首先在每一台节点上启动Drill daemon(Drillbit)进程,在使用client连接上drill前,务必先启动Drillbit进程。

    4.1 启动Drillbit进程,使用drillbit.sh脚本:

    注意:
    如果使用standalone的embedded模式,不需要执行drillbit.sh脚本。

    该脚本除了可以启动Drillbit后台进程外,还可以用来:
    a). 检查Drillbit状态
    b). 停止后重启一个Drillbit进程
    c). 配置Drillbit用于支持自动重启

    drillbit.sh命令语法:

    drillbit.sh [–config < conf-dir >] (start | stop | status | restart | autorestart)

    例如,重启drillbit进程,可以使用:

    drillbit.sh restart

    4.2 启动Drill Shell

    使用shell命令行工具,可以与已连接上的数据源,通过sql方式进行交互式的查询。

    • drill-conf
      通过上述conf/drill-override.conf中配置的zookeeper连接信息,来打开drill shell交互式执行窗口。
    • drill-localhost
      如果本机配置了zk,可以通过这个命令打开drill shell交互式执行窗口。

    执行完后,交互式窗口出现:

    [root@xxxxx bin]# drill-conf
    Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0
    apache drill 1.10.0
    "a drill is a terrible thing to waste"
    0: jdbc:drill:> select * from sys.drillbits;
    +-----------+------------+---------------+------------+----------+----------+
    | hostname  | user_port  | control_port  | data_port  | current  | version  |
    +-----------+------------+---------------+------------+----------+----------+
    | server01  | 31010      | 31011         | 31012      | false    | 1.10.0   |
    | server02  | 31010      | 31011         | 31012      | true     | 1.10.0   |
    +-----------+------------+---------------+------------+----------+----------+
    2 rows selected (2.686 seconds)
    

    4.3 使用Ad-Hoc方式连上Drill Shell

    可以使用sqlline命令以ad-hoc方式连接到drill,例如,如果想使用指定的数据存储插件作为schema,可以使用如下语法:

    sqlline -u jdbc:drill:[schema=< storage plugin >;]zk=< zk_name1>[:< port1>][,< zk_name1>[:< port1>]…]

    参数解读:
    -u 是连接字符串的前置参数,必须项;
    jdbc 是连接类型,必须项;
    schema 查询的插件类型,可选项;
    zk name指代一个或多个zk集群节点IP,或hostname;
    part 指代zk端口号,默认2181,可选项

    例如:
    如果使用dfs数据存储插件,来连上drill,可以这么使用:
    sqlline -u jdbc:drill:schema=dfs;zk=centos01

    如果需要连上zk集群,可以这么使用:
    sqlline -u jdbc:drill:zk=centos01:2181,centos02:2181;centos03:2181

    4.4 退出drill shell

    可以在命令行窗口上执行:!quit

    4.5 关闭Drill服务

    执行: drillbit.sh stop

    ⑤、Web Console UI展示
    可以使用web console来连上drill,这也是drill众多客户端接口中的一个。
    在浏览器中打开如下网址即可:

    • htpp://< IP address or host name>:8047
    • htpps://< IP address or host name>:8047

    二、使用drill操作hbase数据
    如果需要通过drill查询hbase的数据,需要在web console上对hbase数据源做些配置。

    1.web console => Storage tab页 => enable hbase
    2.在“Enabled Storage Plugins”一栏中,点击hbase上的update按钮,进入编辑页面,填入hbase的配置信息。

    配置样例如下:

    {
      "type": "hbase",
      "config": {
        "hbase.zookeeper.quorum": "111.111.111.111",
        "hbase.zookeeper.property.clientPort": "2181",
        "zookeeper.znode.parent": "/hbase"
      },
      "size.calculator.enabled": false,
      "enabled": true
    }
    

    3.重新启动drillbit进程,即可开始查询hbase数据。

    使用drill以sql访问hbase,详见如下文档:
    Querying HBase

    4.注意事项
    hbase里,行健与数据列中的数据均以byte[]形式存在,在使用drill操作hbase的数据时,如果不加转换,实际上它返回给你的是字节数组的地址值。
    这是需要使用其内置转换函数CONVERT_FROM,转换为实际的值。

    一个转换例子:

    SELECT CONVERT_FROM(row_key, 'UTF8') AS studentid, 
            CONVERT_FROM(students.account.name, 'UTF8') AS name, 
            CONVERT_FROM(students.address.state, 'UTF8') AS state, 
            CONVERT_FROM(students.address.street, 'UTF8') AS street, 
            CONVERT_FROM(students.address.zipcode, 'UTF8') AS zipcode 
     FROM students;
    

    相关文章

      网友评论

        本文标题:安装使用Drill-1.10【转】

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