前提是在各个集群节点安装drill。
一.使用drill查询hdfs配置步骤:
1.首先在hdfs中创建文件夹,用来存放上传到hdfs系统的文件
进入hadoop的bin目录:hdfs dfs -mkdir /usr
查看文件夹是否创建成功:hdfs dfs -ls /
修改文件夹的权限:hadoop fs -chmod 777 /usr
然后打开浏览器,输入http://192.168.1.71:8047/storage
点击dfs中的update,配置相关属性,配置完毕后,进行“update”才开始生效,如图1所示:
图1
2.开始查询:
拷贝一个测试.json文件到hdfs: hdfs dfs -copyFromLocal /home/dm/opt/test.txt /usr
前提是打开drill进程:./drillbit.sh start
备注:(由于drill依赖zookeeper,故在启动drill进程之前,确保zookeeper已经启动,否则drill启动报错)
进入集群查询模式:
./sqlline -u jdbc:drill:zk=192.168.1.71:2181,192.168.1.72:2181,192.168.1.73:2181,192.168.1.75:2181,192.168.1.78:2181
使用dfs查询:use dfs.root;(root是workspaces名称)
查询语句例子:
切记:表名称一定要用中文输入法下的单引号,而查询条件后的值用英文输入法的单引号
官方文档例子:
use dfs.json_files;
select * from `donuts.json` where type=’frosted’ ;
二.使用drill查询hbase
1.打开浏览器:然后打开浏览器,输入http://192.168.1.71:8047/storage,找到hbase,使其成为enable状态。
2.进入drill查询:
切换到drill的bin目录:
./sqlline -u jdbc:drill:zk=192.168.1.71:2181,192.168.1.72:2181,192.168.1.73:2181,192.168.1.75:2181,192.168.1.78:2181
3.开始查询:
use hbase;
Select * from ghdj;
以上查询会出现乱码,如果要进行数据格式转换,例子:
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;