본문 바로가기

코딩 Life

하둡 과제 수행 설치부터 WordCount 까지 Example // Hadoop

Image result for 하둡


안녕하세요 학년이 올라갈수록 배우는 깊이가 깊어지는만큼 관련 한글 문서 찾기도 점점 어려워 지더라구요


설치부터 난관이었고 코드 실행, 등등 꽤 시달린 과제였네요


하둡 과제하느라 힘들었던 경험과 사용했던 코드, 참고했던 문서 같이 포스팅해보겠습니다.





앞으로 글은 제 기준에서 설명하기 때문에 환경도 제 기준으로 맞추시는걸 추천합니다


4대의 컴퓨터에서 테스트를 거쳐서 크게 문제 없을거라 보네요


우선 저는 윈도우10 운영체제, VMware 위에 Ubuntu 18.04 배포판 설치해서 실행하였습니다.


사실 실행 중 Linux 설치 방식때문에 실행결과가 달랐던 경우가 있는데 이 부분은 정확히 확인은 못해서 


제가 설치한 방법대로 Linux 공식 다운로드 링크에서 18.04 로 설치하시면 되실겁니다.


16.04에서도 가능한 설치방법입니다.



이 영상을 보고 따라하시면 됩니다. 


하둡에는 3가지 설치 모드 독립모드, 가상분산모드, 완전분산 모드가 있습니다.

독립모드는 설치하신그대로의 상태이고 가상분산부터는 환경변수 추가를 해주셔야합니다.

완전분산모드를 구축하려면 상당한 노력이 요구되 경험자용으로는 추천하지 않는다 하네요.


아래대로 따라하시면 설치는 문제 없으실 거에요

복붙복붙하셔도됩니다만 괄호는 빼고 복붙해주세요

하둡을 하시는분이라면 이해하실거라 생각합니다.


-설치법-
-자바설치-
sudo apt-get update
sudo apt-get purge openjdk*
sudo add-apt-repository ppa:webupd8team/java      (press enter)
sudo apt-get update
sudo apt-get install oracle-java8-installer  (y ok Yes)
java -version

-자바환경변수-
sudo nano /etc/profile
export JAVA_HOME=/usr    (ctrl+x, y, enter 로 저장)
source /etc/profile

-네트워크 설정-
sudo nano /etc/sysctl.conf
#Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.defaul.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1  (마지막에 붙여넣고 저장)
sudo reboot

-하둡사용자 추가-
sudo addgroup hadoopgroup
sudo adduser -ingroup hadoopgroup hduser (뉴패스워드 입력하시고 정보는 모두 엔터 마지막으로 y)
sudo apt-get install ssh   (input y)
sudo systemctl enable ssh
sudo systemctl start ssh
su - hduser
ssh-keygen -t rsa -P ""        (press 엔터)
cat /home/hduser/.ssh/id_rsa.pub >> /home/hduser/.ssh/authorized_keys
cd .ssh/
chmod 600 ./authorized_keys
ssh-copy-id -i /home/hduser/.ssh/id_rsa.pub localhost     (input yes. yes 라고 치셔야됩니다.)
ssh localhost
exit

-하둡설치-
cd ..
tar -xvf hadoop-2.7.3.tar.gz
exit
cd /home/hduser
sudo mv ./hadoop-2.7.3 /usr/local/
sudo ln -sf /usr/local/hadoop-2.7.3/ /usr/local/hadoop
sudo chown -R hduser:hadoopgroup /usr/local/hadoop-2.7.3/
su - hduser

-하둡환경변수설정-
nano ./.bashrc
#Hadoop config
export HADOOP_PREFIX=/usr/local/hadoop
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export YARN_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

#Native path
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPT="-Djava.library.path=$HADOOP_PREFIX/lib/native"

#Java path
export JAVA_HOME="/usr"

#OS path
export PATH=$PATH:$HADOOP_HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/sbin    (마지막에 붙여넣고 저장)
source ./.bashrc

nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME="/usr"   (자바라고 써진 부분 다음줄에 붙여넣고 저장)

cd /usr/local/hadoop/
cd etc/hadoop/

nano core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>   (Configuration 사이에 붙여넣고 저장)

nano hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:/usr/local/hadoop/hadoopdata/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:/usr/local/hadoop/hadoopdata/hdfs/datanode</value>
</property>    (Configuration 사이에 넣고 저장)

nano mapred-site.xml.template
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>  (configuration 사이에 넣고 ctrl+x, y 후에 이름의 확장자를 .template 를 지우고 .xml로 바꾼뒤 enter y)

nano yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>   (Configuration 사이에 넣고 저장)


cd ../..
cd bin/
hdfs namenode -format
cd /home/hduser/
start-dfs.sh     yes
start-yarn.sh
jps

여기까지 하시고 실행중에 6개 뜨면 성공적으로 설치하신겁니다.
hduser에서 하둡명령 실행하시면 되고 명령어 칠 때마다 warning 뜨는건 무시하셔도 됩니다.
명령어는 hdfs dfs -ls,-cat,-put 이런식으로 사용하시면됩니다.


hduser로 로그인
jps
stop-dfs.sh
stop-yarn.sh
jps
start-dfs.sh

start-yarn.sh


실행하실때 start-all.sh 를 하시면 yarn 과 hadoop 동시에 실행하게 됩니다.


지금까지 설치법에 대해 알아보았습니다. 다음에는 Hadoop 의 HelloWorld인 WordCount 예제를 실행해볼게요


'코딩 Life' 카테고리의 다른 글

안녕하ㅔ요  (0) 2018.11.08