복붙노트

[HADOOP] Cloudera 빠른 시작 도커에서 볼륨으로서의 HDFS

HADOOP

Cloudera 빠른 시작 도커에서 볼륨으로서의 HDFS

나는 hadoop과 docker에 상당히 익숙합니다.

cloudera / quickstart docker image docker 파일을 확장하려고 노력하고 있으며 디렉토리 양식 호스트를 마운트하고 hdfs 위치에 매핑하여 성능이 향상되고 데이터가 로컬로 유지되도록했습니다.

-v / localdir : / someDir을 사용하여 어디에서나 볼륨을 마운트하면 모든 것이 잘 작동하지만 목표는 아닙니다. 그러나 -v / localdir : / var / lib / hadoop-hdfs를 수행하면 datanode와 namenode가 모두 시작되지 않고 "cd / var / lib / hadoop-hdfs : Permission denied"가 표시됩니다. 그리고 -v / localdir : / var / lib / hadoop-hdfs / cache 할 때 권한이 거부되지 않았지만 datanode 및 namenode 또는 도커 이미지 시작시 시작되지 않고 로그에서 유용한 정보를 찾을 수 없습니다 그 이유에 대한 파일.

누군가이 문제를 겪었거나 도커 컨테이너 외부에 hdfs를 넣는 다른 솔루션이 있습니까?

해결법

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

    1.당신은 실행해야합니다

    당신은 실행해야합니다

    docker exec -it "YOUR CLOUDERA CONTAINER" chown -R hdfs:hadoop /var/lib/hadoop-hdfs/ 
    
  2. ==============================

    2.나는 같은 문제를 겪었고 컨테이너에서 로컬 디렉토리로 전체 / var / lib 디렉토리를 복사하는 상황을 관리했습니다.

    나는 같은 문제를 겪었고 컨테이너에서 로컬 디렉토리로 전체 / var / lib 디렉토리를 복사하는 상황을 관리했습니다.

    터미널에서 모든 hadoop 서비스를 시작하지 않고 cloudera / quickstart 컨테이너를 시작하십시오.

    docker run -ti cloudera/quickstart /bin/bash
    

    다른 터미널에서 컨테이너 디렉토리를 로컬 디렉토리로 복사하십시오. :

    mkdir /local_var_lib
    docker exec your_container_id tar Ccf $(dirname /var/lib) - $(basename /var/lib) | tar Cxf /local_var_lib -
    

    모든 파일을 컨테이너에서 로컬 디렉토리로 복사 한 후 컨테이너를 중지하고 / var / lib를 새 대상으로 지정하십시오. / local_var_lib 디렉토리에 hadoop 디렉토리 (hbase, hadoop-hdfs, oozie, mysql 등)가 포함되어 있는지 확인하십시오.

    컨테이너를 시작하십시오.

    docker run --name cloudera \
      --hostname=quickstart.cloudera \
      --privileged=true \
      -td \
      -p 2181:2181 \
      -p 8888:8888 \
      -p 7180:7180 \
      -p 6680:80 \
      -p 7187:7187 \
      -p 8079:8079 \
      -p 8080:8080 \
      -p 8085:8085 \
      -p 8400:8400 \
      -p 8161:8161 \
      -p 9090:9090 \
      -p 9095:9095 \
      -p 60000:60000 \
      -p 60010:60010 \
      -p 60020:60020 \
      -p 60030:60030 \
      -v /local_var_lib:/var/lib \
      cloudera/quickstart /usr/bin/docker-quickstart
    
  3. from https://stackoverflow.com/questions/38521048/hdfs-as-volume-in-cloudera-quickstart-docker by cc-by-sa and MIT license