Создание плагина для хранения на Apache Drill для HDFS

Я пытаюсь сделать плагин для хранения Hadoop (hdfs) и Apache Drill. На самом деле я запутался, и я не знаю, что установить в качестве порта для соединения hdfs://, и что установить для местоположения. Это мой плагин:

 {
 "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, потому что я получил это командой:

 hdfs -getconf -nnRpcAddresses 

или это:8020?

Второй вопрос, что мне нужно установить для местоположения? Моя папка hadoop находится в:

/usr/local/hadoop

, и там вы можете найти /etc /bin /lib /log ... Итак, мне нужно указать местоположение на моей датоде или?

Третий вопрос Когда я подключаюсь к Drill, я прохожу через sqlline, а затем подключаюсь к своему зоопарку, например:

  !connect jdbc:drill:zk=localhost:2181 

Мой вопрос здесь, после того, как я сделаю плагин хранилища и когда я подключаюсь к Drill с zk, могу ли я запросить файл hdfs?

Мне очень жаль, если это нубский вопрос, но я не нашел ничего полезного в интернете или, по крайней мере, он мне не помог. Если вы сможете объяснить мне кое-что, я буду очень благодарен.

2 ответа

Решение

Согласно документации Drill,

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

поставить наменоде адрес сервера.

Если вы не уверены в этом адресе. Проверьте fs.default.name или же fs.defaultFS свойства в core-site.xml ,

Подходит к "workspaces",

Вы можете сохранить рабочие места в этом. В приведенном выше примере есть workspace с именем root и местоположение /user/root/drill, Это ваше местоположение HDFS.

Если у вас есть файлы в /user/root/drill Каталог hdfs, вы можете запросить их, используя это имя рабочей области.

Пример: abc находится в этом каталоге.

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

После успешного создания плагина вы можете начать детализацию и начать запросы.

Вы можете запросить любой каталог независимо от рабочих пространств.

Скажем, вы хотите запросить employee.json в /tmp/data каталог hdfs.

Запрос это:

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

У меня похожая проблема, Drill не может прочитать сервер DFS. Наконец, проблема связана с портом namenode. Адрес веб-интерфейса namenode по умолчанию - http://localhost:50070/.

Адрес по умолчанию для сервера namenode: hdfs://localhost:8020/.

Другие вопросы по тегам