安装使用Drill-1.10【转】

准备材料:

  • 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;
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • hadoop2集群搭建详解------------------------天津九安医疗电子--吴伟 一、需要软件 ...
    hogface阅读 1,792评论 1 4
  • 1 Zookeeper概述# ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决...
    七寸知架构阅读 7,339评论 0 101
  • VirtualBox设置 VirtualBox网络设置选NAT并配置端口转发:2222->22 安装时开启以太网并...
    AndyTalk阅读 313评论 0 0
  • 寒城飘雨,叶黄零落,夜深衣薄。筝弦已动心悸,皆知一曲,红颜微露。袖手秋千,意恐玉笙暗相遇。极目望,伊影茫茫,竟透珠...
    朱曦侦探事务所阅读 264评论 0 2
  • 我重来没想过竟然小小的感冒竟然会持续如此之久。从去年的九月底到今年现在,我还是处在感冒的延续期。 刚开...
    江心与阅读 403评论 0 0