Docker Shell Code 메모

Memo 2021. 10. 18. 23:41

denied: requested access to the resource is denied

=> 로그인을 하지 않았을 때 뜨는 메세지이다. 

=> docker login 입력하여 로그인하기

 

datanode가 안 올라올 때

\$ rm -rf $HADOOP_HOME/data/*

\$ rm -rf $HADOOP_HOME/logs/*

\$ rm -rf /tmp/*

\$ mkdir /tmp/spark-events

 

commit.sh

수정한 Container를 Docker Image로 Update&Commit

docker commit $1 hadoop-spark &&
docker tag hadoop-spark zhwan85/hadoop-spark &&
docker push zhwan85/hadoop-spark

** $1은 컨테이너의 Name이나 ID를 의미한다.

**  Docker 이미지를 내려받을 때는 docker pull <이미지명>:[태그명]

 

go.sh

Docker 접속. --privileged로 권한 부여. $1에 Container ID 혹은 Name 입력

#!/bin/bash
docker exec -it --privileged \$1 bash

** $1은 컨테이너의 Name이나 ID를 의미한다.

 

make.sh

Docker Container 생성. -v 옵션으로 볼륨 바인딩

docker run -v /data/wed_storage:/data -p 8888:8888 -itd --name hadoop-master zhwan85/hadoop-spark:latest &&
docker run -v /data/wed_storage:/data -itd --name hadoop-slave1 zhwan85/hadoop-spark:latest &&
docker run -v /data/wed_storage:/data -itd --name hadoop-slave2 zhwan85/hadoop-spark:latest &&
docker run -v /data/wed_storage:/data -itd --name hadoop-slave3 zhwan85/hadoop-spark:latest &&
docker ps -a

** -p 8888:8888 쥬피터 노트북을 외부에서 이용하기 위해 포트를 열어준다.

ready.sh

Container별 설정 실행

#!/bin/bash
docker exec --privileged hadoop-master sh -c "cd ~/; ./ready.sh" &&
echo "Master Ready" &&
docker exec --privileged hadoop-slave1 sh -c "cd ~/; ./ready.sh" &&
echo "Slave1 Ready" &&
docker exec --privileged hadoop-slave2 sh -c "cd ~/; ./ready.sh" &&
echo "Slave2 Ready" &&
docker exec --privileged hadoop-slave3 sh -c "cd ~/; ./ready.sh"
echo "Slave3 Ready"

Container 내부 ready.sh

#!/bin/bash
echo "172.17.0.2 master" >> /etc/hosts &&
echo "172.17.0.3 slave1" >> /etc/hosts &&
echo "172.17.0.4 slave2" >> /etc/hosts &&
echo "172.17.0.5 slave3" >> /etc/hosts &&
ufw allow 22 &&
service ssh start

mkdir /tmp/spark-events
rm -rf $HADOOP_HOME/data

** mkdir /tmp/spark-events은 생성하지 않으면 spark history 서버 실행할 때 오류가 발생함

** \$HADOOP_HOME/data의 datanode를 남겨둔다면 hadoop 애플리케이션을 올렸을 때 datanode가 실행되지 않을 수 있다.

remove.sh

모든 Container 중단 및 삭제

docker stop hadoop-master &&
docker stop hadoop-slave1 &&
docker stop hadoop-slave2 &&
docker stop hadoop-slave3 &&
docker rm hadoop-master &&
docker rm hadoop-slave1 &&
docker rm hadoop-slave2 &&
docker rm hadoop-slave3 &&
docker ps -a

 

start.sh

hadoop, spark 실행

#!/bin/bash
docker exec --privileged hadoop-master sh -c "cd ~/; ./start.sh" &&
echo "Master Started" 

Container 내부 start.sh

#!/bin/bash
$HADOOP_HOME/bin/hdfs namenode -format -force &&
$HADOOP_HOME/sbin/start-dfs.sh &&
$HADOOP_HOME/sbin/start-yarn.sh &&
$HADOOP_HOME/bin/mapred --daemon start historyserver &&
echo "HADOOP Ready" &&
$SPARK_HOME/sbin/start-all.sh &&
$SPARK_HOME/sbin/start-history-server.sh &&
echo "SPARK Ready"

 

stop.sh

hadoop, spark 중단

#!/bin/bash
docker exec --privileged hadoop-master sh -c "cd ~/; ./stop.sh" &&
echo "Master Stopped" 

Container 내부 stop.sh

#!/bin/bash
$HADOOP_HOME/sbin/stop-dfs.sh &&
$HADOOP_HOME/sbin/stop-yarn.sh &&
$HADOOP_HOME/bin/mapred --daemon stop historyserver &&
rm -rf $HADOOP_HOME/data/namenode/* &&
echo "HADOOP Stop" &&
$SPARK_HOME/sbin/stop-all.sh &&
$SPARK_HOME/sbin/stop-history-server.sh &&
rm -rf $SPARK_HOME/eventLog/* &&
echo "SPARK Stop"

 

 

 

 

'Memo' 카테고리의 다른 글

(작성중) Hadoop 명령어 정리  (0) 2021.10.28
리눅스 쉘 명령어 메모  (0) 2021.10.23
NAT와 Bridge 구분  (0) 2021.10.18
Hadoop 설치할 때 이용했던 Docker 명령어 메모  (0) 2021.10.18
우분투 관련 온갖 것들 메모  (0) 2021.09.28
admin