복붙노트

[HADOOP] Hadoop에 데이터 쓰기

HADOOP

Hadoop에 데이터 쓰기

윈도우즈 박스와 같은 외부 소스에서 Hadoop (HDFS)에 데이터를 써야합니다. 지금은 namenode에 데이터를 복사하고 HDFS의 put 명령을 사용하여 데이터를 클러스터로 가져 왔습니다. 코드를 탐색 할 때 API를 보지 못했습니다. 누군가가 내가 틀렸다고 보여줄 수 있기를 바라고 있으며 HDFS에 대한 외부 클라이언트를 쉽게 코딩 할 수있는 방법이 있습니다.

해결법

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

    1.Cygwin을 설치하고 Hadoop을 로컬에 설치하십시오 (실제로 NN을 가리키는 이진 파일과 configs 만 필요합니다 - 실제로 서비스를 실행할 필요가 없습니다). hadoop fs -copyFromLocal / path / to / localfile / hdfs / path /

    Cygwin을 설치하고 Hadoop을 로컬에 설치하십시오 (실제로 NN을 가리키는 이진 파일과 configs 만 필요합니다 - 실제로 서비스를 실행할 필요가 없습니다). hadoop fs -copyFromLocal / path / to / localfile / hdfs / path /

    웹 UI를 통해 파일을 업로드하려면 새로운 Cloudera 데스크탑을 사용할 수도 있지만 거대한 파일에는 적합하지 않을 수 있습니다.

    HDFS에 대한 WebDAV 오버레이도 있지만 안정적 / 안정적인지는 알 수 없습니다.

  2. ==============================

    2.Java에는 API가 있습니다. 프로젝트에 Hadoop 코드를 포함 시켜서 사용할 수 있습니다. JavaDoc은 일반적으로 매우 유용하지만, 물론 당신이 찾고있는 것은 무엇인지를 알아야합니다. * g * http://hadoop.apache.org/common/docs/

    Java에는 API가 있습니다. 프로젝트에 Hadoop 코드를 포함 시켜서 사용할 수 있습니다. JavaDoc은 일반적으로 매우 유용하지만, 물론 당신이 찾고있는 것은 무엇인지를 알아야합니다. * g * http://hadoop.apache.org/common/docs/

    귀하의 특정 문제에 대해 살펴보십시오 : http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/fs/FileSystem.html (이것은 최신 릴리스에 적용되며 다른 버전의 다른 JavaDocs를 참조하십시오!)

    일반적인 호출은 다음과 같습니다. Filesystem.get (새 JobConf ()). create (새 경로 ( "however.file")); 어느 것이 일반 JavaIO로 처리 할 수있는 스트림을 반환합니다.

  3. ==============================

    3.HDFS에 넣어야하는 데이터를로드하는 문제 때문에이 문제를 해결하려고합니다.

    HDFS에 넣어야하는 데이터를로드하는 문제 때문에이 문제를 해결하려고합니다.

    파일을 HDFS에 업로드하는 대신, 맵퍼가 파일 서버 (이 경우 https를 통해)에서 파일을 읽은 다음 Java를 통해 HDFS에 직접 기록하는 Java Map / Reduce 작업을 작성했습니다. API).

    파일 목록이 입력에서 읽 t집니다. 그런 다음 가져 오기 할 파일 목록이있는 파일을 채우는 외부 스크립트가 있고 hadoop dfs -put을 사용하여 HDFS에 파일을 업로드 한 다음지도 / 축소 작업을 적절한 매퍼로 시작합니다.

    여러 파일을 동시에 읽고 쓸 수 있기 때문에 전송 성능이 뛰어납니다.

    어쩌면 당신이 찾고 있던 대답이 아니지만 어쨌든 도움이 되었으면 좋겠다 .--).

  4. ==============================

    4.지난 2 년 후, Hoop / HttpFS와 WebHDFS의 두 가지 새로운 대안이 나왔습니다.

    지난 2 년 후, Hoop / HttpFS와 WebHDFS의 두 가지 새로운 대안이 나왔습니다.

    후프에 대해서는 Cloudera의 블로그에서 처음 발표되었으며 github 저장소에서 다운로드 할 수 있습니다. 필자는이 버전을 최소한 Hadoop 0.20.1과 성공적으로 대화 할 수있게되었습니다. 아마도 이전 버전과 약간 대화 할 수 있습니다.

    아직 작성되지 않은 Hadoop 0.23.1을 실행중인 경우 Hoop은 대신 Hadoop을 자체 구성 요소 인 HttpFS의 일부로 사용합니다. 이 작업은 HDFS-2178의 일부로 수행되었습니다. Hoop / HttpFS는 HDFS뿐만 아니라 Amazon S3와 같은 다른 Hadoop 호환 파일 시스템에 대한 프록시 일 수도 있습니다.

    Hoop / HttpFS는 자체 독립 실행 형 서비스로 실행됩니다.

    NameNode 및 DataNode 서비스의 일부로 실행되는 WebHDFS도 있습니다. 또한 올바르게 이해할 경우 HttpFS API와 호환되는 REST API를 제공합니다. WebHDFS는 Hadoop 1.0의 일부이며, 주요 기능 중 하나는 데이터 지역성을 제공한다는 것입니다. 읽기 요청을 할 때 데이터가있는 데이터 노드의 WebHDFS 구성 요소로 리디렉션됩니다.

    선택할 구성 요소는 현재 설정의 비트와 필요한 항목에 따라 다릅니다. 이제 HDFS에 HTTP REST 인터페이스가 필요하고 WebHDFS를 포함하지 않는 버전을 실행중인 경우 github 저장소에서 후프로 시작하는 것이 가장 쉬운 옵션처럼 보입니다. WebHDFS가 포함 된 버전을 실행중인 경우, WebHDFS에없는 기능 중 일부가 필요하지 않으면 (다른 파일 시스템에 대한 액세스, 대역폭 제한 등)

  5. ==============================

    5.http://wiki.apache.org/hadoop/MountableHDFS에 전용 페이지가있는 것 같습니다.

    http://wiki.apache.org/hadoop/MountableHDFS에 전용 페이지가있는 것 같습니다.

    나중에이 프로젝트를 설명합니다.

    나는 이들 중 어느 것도 시도하지 않았지만 OP와 같은 필요성을 가지고 있기 때문에 곧 답변을 업데이트 할 것입니다.

  6. ==============================

    6.이제 Hadoop 통합을위한 구성 요소가 포함 된 Talend를 사용해 볼 수도 있습니다.

    이제 Hadoop 통합을위한 구성 요소가 포함 된 Talend를 사용해 볼 수도 있습니다.

  7. ==============================

    7.코드를 실행중인 머신에 HDFS를 마운트 할 수 있습니다 (machine_X라고 부름). machine_X는 HDFS와 infiniband 연결을해야합니다. https://wiki.apache.org/hadoop/MountableHDFS

    코드를 실행중인 머신에 HDFS를 마운트 할 수 있습니다 (machine_X라고 부름). machine_X는 HDFS와 infiniband 연결을해야합니다. https://wiki.apache.org/hadoop/MountableHDFS

  8. ==============================

    8.HadoopDrive (http://hadoopdrive.effisoft.eu)를 사용할 수도 있습니다. Windows 셸 확장입니다.

    HadoopDrive (http://hadoopdrive.effisoft.eu)를 사용할 수도 있습니다. Windows 셸 확장입니다.

  9. from https://stackoverflow.com/questions/1533330/writing-data-to-hadoop by cc-by-sa and MIT license