在ApacheDrill上制作存储插件到hdfs

wztqucjr  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(432)

我正在尝试为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的问题,但我还没有找到任何有用的互联网或至少它没有帮助我。如果你能给我解释一些事情,我将非常感激。

pdkcd3nj

pdkcd3nj1#

根据演习文件,

{
    "type" : "file",
    "enabled" : true,
    "connection" : "hdfs://10.10.30.156:8020/",
    "workspaces" : {
      "root" : {
        "location" : "/user/root/drill",
        "writable" : true,
        "defaultInputFormat" : null
      }
    },
    "formats" : {
      "json" : {
        "type" : "json"
      }
    }
  }

"connection" ,
放置namenode服务器地址。
如果你不确定这个地址。检查 fs.default.name 或者 fs.defaultFS 中的属性 core-site.xml .
来到 "workspaces" ,
您可以将工作区保存在此文件夹中。在上面的例子中,有一个 workspace 有名字的 root 和位置 /user/root/drill . 这是您的hdfs位置。
如果你有档案 /user/root/drill hdfs目录,您可以使用此工作区名称查询它们。
例子: `` 在这个目录下。

select * from dfs.root.`abc.csv`

成功创建插件后,可以开始钻取并开始查询。
您可以查询任何目录,而不必考虑工作区。
说你想查询 employee.json/tmp/data hdfs目录。
查询是:

select * from dfs.`/tmp/data/employee.json`
4ktjp1zp

4ktjp1zp2#

我有类似的问题,钻无法读取dfs服务器。最后,问题是由namenode端口引起的。namenode web ui的默认地址是http://localhost:50070/.
namenode服务器的默认地址是hdfs://localhost:8020/.

相关问题