在Apache Drill上创建存储插件到HDFS

时间:2016-08-31 09:18:48

标签: apache hadoop hdfs apache-drill hadoop-plugins

我正在尝试为Hadoop(hdfs)和Apache Drill制作存储插件。 实际上我很困惑,我不知道如何设置为hdfs://连接的端口,以及为位置设置的内容。 这是我的插件:

timeout

所以,设置 localhost:54310 是正确的,因为我通过命令得到了它:

 {
 "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"
   }
 }
}

或者是:8020?

第二个问题,我需要为位置设置什么?我的hadoop文件夹位于:

 hdfs -getconf -nnRpcAddresses 

,你可以找到/ etc / bin / lib / log ...那么,我需要在我的datanode上设置位置,还是?

第三个问题。当我连接到Drill时,我将通过 sqlline 而不是连接我的zookeeper,如:

/usr/local/hadoop

我的问题是,在我制作存储插件后,当我用zk连接到Drill时,我可以查询hdfs文件吗?

如果这是一个菜鸟问题,我很抱歉,但我没有在互联网上找到任何有用的东西,或者至少它没有帮助我。 如果你能够向我解释一些东西,我将非常感激。

2 个答案:

答案 0 :(得分:2)

根据Drill docs

  {
    "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.defaultFScore-site.xml个媒体资源。

"workspaces"

您可以在此保存工作区。在上面的示例中,有一个workspace,其名称为root,位置为/user/root/drill。  这是您的HDFS位置。

如果您在/user/root/drill hdfs目录下有文件,则可以使用此工作区名称查询它们。

示例:abc位于此目录下。

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

成功创建插件后,您可以开始钻取并开始查询。

您可以查询任何目录,而不管工作空间。

假设您要在employee.json hdfs目录中查询/tmp/data

查询是:

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

答案 1 :(得分:0)

我有类似的问题,Drill无法读取dfs服务器。最后,问题是由namenode端口引起的。 namenode Web UI的默认地址为http://localhost:50070/

namenode服务器的默认地址是hdfs:// localhost:8020 /。