我正在尝试为hadoop(hdfs)和apachedrill制作存储插件。实际上我很困惑,我不知道应该为hdfs://connection设置什么端口,也不知道应该为location设置什么。这是我的插件:
{
"type": "file",
"enabled": true,
"connection": "hdfs://localhost:54310",
"workspaces": {
"root": {
"location": "/",
"writable": false,
"defaultInputFormat": null
},
"tmp": {
"location": "/tmp",
"writable": true,
"defaultInputFormat": null
}
},
"formats": {
"psv": {
"type": "text",
"extensions": [
"tbl"
],
"delimiter": "|"
},
"csv": {
"type": "text",
"extensions": [
"csv"
],
"delimiter": ","
},
"tsv": {
"type": "text",
"extensions": [
"tsv"
],
"delimiter": "\t"
},
"parquet": {
"type": "parquet"
},
"json": {
"type": "json"
},
"avro": {
"type": "avro"
}
}
}
那么,设置是否正确localhost:54310 because 我是通过命令得到的:
hdfs -getconf -nnRpcAddresses
或者是8020?
第二个问题,我需要设置什么位置?我的hadoop文件夹位于:
/usr/local/hadoop
,在那里可以找到/etc/bin/lib/log。。。那么,我需要在datanode上设置位置,还是?
第三个问题。当我连接到drill时,我会通过sqlline,然后在我的zookeeper上连接,比如:
!connect jdbc:drill:zk=localhost:2181
我的问题是,在我做了存储插件之后,当我用zk连接到drill时,我可以查询hdfs文件吗?
我很抱歉,如果这是一个noob的问题,但我还没有找到任何有用的互联网或至少它没有帮助我。如果你能给我解释一些事情,我将非常感激。
2条答案
按热度按时间pdkcd3nj1#
根据演习文件,
在
"connection"
,放置namenode服务器地址。
如果你不确定这个地址。检查
fs.default.name
或者fs.defaultFS
中的属性core-site.xml
.来到
"workspaces"
,您可以将工作区保存在此文件夹中。在上面的例子中,有一个
workspace
有名字的root
和位置/user/root/drill
. 这是您的hdfs位置。如果你有档案
/user/root/drill
hdfs目录,您可以使用此工作区名称查询它们。例子: `` 在这个目录下。
成功创建插件后,可以开始钻取并开始查询。
您可以查询任何目录,而不必考虑工作区。
说你想查询
employee.json
在/tmp/data
hdfs目录。查询是:
4ktjp1zp2#
我有类似的问题,钻无法读取dfs服务器。最后,问题是由namenode端口引起的。namenode web ui的默认地址是http://localhost:50070/.
namenode服务器的默认地址是hdfs://localhost:8020/.