hadoop - hive - spark 테스트 환경
- https://github.com/Marcel-Jan/docker-hadoop-spark/archive/refs/heads/master.zip
git clone https://github.com/Marcel-Jan/docker-hadoop-spark
GitHub - Marcel-Jan/docker-hadoop-spark: Multi-container environment with Hadoop, Spark and Hive
위의 file 을 download 하자. windows 라면, zip file 을 받는 것이 나을 수 있다. .sh
의 line ending 에 문제가 생길 수 있다.
그리고 README.md
를 따라 하면 된다.
설치
docker-compose up
설치가 완료된 후 docker network
로 network 정보를 알 수 있다.
docker network inspect docker-hadoop-spark-master_default
README.md 에 보면 아래처럼 URL이 나와 있다. <dockerhadoop_IP_address>
에 localhost
를 넣고 web browser 에서 접근해 보면 된다.
- Namenode: http://
:9870/dfshealth.html#tab-overview - History server: http://
:8188/applicationhistory - Datanode: http://
:9864/ - Nodemanager: http://
:8042/node - Resource manager: http://
:8088/ - Spark master: http://
:8080/ - Spark worker: http://
:8081/ - Hive: http://
:10000
HDFS 에 file 올리기
hdfs 사용은 namenode 에 접근해서 작업하면 된다.
만약 file 을 hdfs 로 복사하려면 아래같이 파일을 옮기면 된다.
local --> namenode --> hdfs
여기서는 namenode 가 docker 로 되어 있으니, 아래처럼 파일을 namenode로 복사하면 된다.
docker cp <file_name> namenode:<file_name>
┌──────────┐ ┌──────────┐ ┌───────────┐
│ │ │ │ │ │
│ local │ │ namenode │ │ hdfs │
│ ┌──────┐ │ ─────► │ ┌──────┐ │ ───► │ │
│ │ file │ │ │ │ file │ │ │ │
│ └──────┘ │ │ └──────┘ │ │ │
└──────────┘ └──────────┘ └───────────┘
hdfs 에 directory 를 만들어 보자. 만약 /myhome/test/files
라는 folder 를 만든다고 하면 아래처럼 명령어를 실행하면 된다.
hdfs dfs -mkdir /myhome
hdfs dfs -mkdir /myhome/test
hdfs dfs -mkdir /myhome/test/files
이제 방금만든 directory 에 file 을 copy 하자. -put
을 사용하면 된다. 반대로 hdfs 에서 file 을 가져올 때는 -get
을 사용하면 된다.
hdfs dfs -put testfiles.csv /myhome/test/files/testfiles.csv
┌──────────┐ ┌──────────┐ ┌───────────┐
│ │ │ │ │ │
│ local │ │ namenode │ │ hdfs │
│ ┌──────┐ │ ─────► │ ┌──────┐ │ ───► │ ┌───────┐ │
│ │ file │ │ │ │ file │ │ │ │ file │ │
│ └──────┘ │ │ └──────┘ │ │ └───────┘ │
└──────────┘ └──────────┘ └───────────┘
spark 사용하기
spark 가 있는 spark-master 에 가서 spark-shell 을 실행 시키자. 아래처럼 하면 된다.
docker exec -it spark-master bash
spark/bin/spark-shell --master spark://spark-master:7077
그럼 아래처럼 spark prompt 가 뜬다. 여기서 spark 관련 작업을 할 수 있다.
spark>
spark 로 아까 hdfs 에 upload 한 csv file 을 읽어오자. namenode 의 port 는 http://localhost:9870/dfshealth.html#tab-overview
에 가서 namenode:<port>
확인하자.
val df = spark.read.csv("hdfs://namenode:9000/myhome/test/files/testfiles.csv")
댓글 없음:
댓글 쓰기