복붙노트

[HADOOP] 아파치 드릴에 HDFS에 저장 플러그인 만들기

HADOOP

아파치 드릴에 HDFS에 저장 플러그인 만들기

나는 하둡 (HDFS)에 저장 플러그인 및 아파치 드릴 수 있도록 노력하고있어. 사실은 내가 혼란 그리고 난 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"
   }
 }
}

54310을 내가 가지고 있기 때문에 그 명령 : 그래서, 그것은 올바른 localhost를 설정하는 것입니다 :

 hdfs -getconf -nnRpcAddresses 

또는이다 : 8020?

두 번째 질문, 나는 위치를 설정하려면 어떻게해야합니까? 내 하둡 폴더에 있습니다 :

/usr/local/hadoop

거기서 찾을 수 있습니다은 / etc / 빈 / lib 디렉토리 / 로그 ... 그래서, 내 데이터 노드에 위치를 설정해야하거나합니까?

세 번째 질문입니다. 내가 드릴에 연결 해요 때, 나는 sqlline 통해처럼 내 사육사에 연결하는 것보다거야 :

  !connect jdbc:drill:zk=localhost:2181 

내가 저장 플러그인을 한 후에 내가 ZK와 드릴에 연결하면 내 질문은 여기에 내가 HDFS는 파일을 조회 할 수있다?

이 멍청한 놈 질문입니다하지만 인터넷에서 유용하거나 적어도 나에게 도움이되지 않은 아무것도 찾을하지 않은 경우 정말 죄송합니다. 당신은 내게 몇 가지 물건을 설명 할 수 있다면, 나는 매우 감사하게 될 것입니다.

해결법

  1. ==============================

    1.드릴 문서에 따라,

    드릴 문서에 따라,

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

    '연결',

    네임 노드 서버 주소를 넣어.

    이 주소에 대한 확실하지 않은 경우. 코어를 site.xml에 fs.default.name 또는 fs.defaultFS 속성을 확인하십시오.

    "작업 공간"오는,

    당신이에서 작업 공간을 절약 할 수 있습니다. 위의 예에서 이름 루트 및 위치 / 사용자 / 루트 / 드릴 작업 공간이있다.  이것은 당신의 HDFS 위치입니다.

    당신이 / 사용자 / 루트 / 드릴 HDFS 디렉토리에 파일이있는 경우, 당신은이 작업 공간 이름을 사용하여 조회 할 수 있습니다.

    예 : ABC는이 디렉토리 아래에있다.

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

    성공적으로 플러그인을 만든 후에는 훈련을 시작하고 쿼리를 시작할 수 있습니다.

    당신은 작업 공간에 관계없이 임의의 디렉토리를 조회 할 수 있습니다.

    당신은 / tmp를 / 데이터 HDFS 디렉토리에 employee.json을 조회 할 말.

    쿼리는 다음과 같습니다

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

    2.나는 비슷한 문제를 가지고 드릴 DFS 서버를 읽을 수 없습니다. 마지막으로, 문제는 네임 노드 포트에 의한 원인이다. // 로컬 호스트 : 50070 / 네임 노드 웹 UI의 기본 주소는 HTTP입니다.

    나는 비슷한 문제를 가지고 드릴 DFS 서버를 읽을 수 없습니다. 마지막으로, 문제는 네임 노드 포트에 의한 원인이다. // 로컬 호스트 : 50070 / 네임 노드 웹 UI의 기본 주소는 HTTP입니다.

    네임 노드 서버의 기본 주소는 HDFS입니다 : // localhost를 : 8020 /.

  3. from https://stackoverflow.com/questions/39245542/making-storage-plugin-on-apache-drill-to-hdfs by cc-by-sa and MIT license