1. Java
$ cd $HOME
$ sudo apt-get install openjdk-8-jdk
$ nano ~/.bash_profile
다음을 추가해준다.
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# Anaconda
export ANACONDA_HOME="/home/kjhov195/anaconda3"
# Java
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
# Path
export PATH=${ANACONDA_HOME}/bin:${JAVA_HOME}/bin:$PATH
변경된 환경 변수를 적용해준다.
source ~/.bash_profile
2. Scala
sudo apt-get install scala
3. Hadoop(Pseudo-Dstributed mode)
1. install protobuf
$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install make
$ cd /usr/local
$ sudo wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
$ sudo tar xvzf protobuf-2.6.1.tar.gz
$ cd protobuf-2.6.1
$ sudo ./configure
$ sudo make
$ sudo make install
$ sudo ldconfig
$ protoc --version
2. install Hadoop
$ cd $HOME
$ wget https://archive.apache.org/dist/hadoop/core/hadoop-2.9.0/hadoop-2.9.0.tar.gz
$ tar xvzf hadoop-2.9.0.tar.gz
$ ln -s hadoop-2.9.0 hadoop
$ mv hadoop-2.9.0.tar.gz ./downloads/
3. setting for hadoop
hadoop-env.sh
$ cd $HOME/hadoop/etc/hadoop
$ nano hadoop-env.sh
다음 두 부분을 찾아 수정해준다.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_PID_DIR=/home/kjhov195/hadoop/pids
masters
$ nano masters
다음의 내용으로 수정해준다.
localhost
slaves
$ nano slaves
다음의 내용으로 수정해준다.
localhost
core-site.xml
$ nano core-site.xml
기존의 내용을 지우고 다음의 내용으로 수정해준다.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9010</value>
</property>
</configuration>
hdfs-site.xml
$ nano core-site.xml
기존의 내용을 지우고 다음의 내용으로 수정해준다.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/kjhov195/data/dfs/namenode</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/home/kjhov195/data/dfs/namesecondary</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/kjhov195/data/dfs/datanode</value>
</property>
<property>
<name>dfs.http.address</name>
<value>localhost:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>localhost:50090</value>
</property>
</configuration>
hdfs-site.xml
$ cp mapred-site.xml.template mapred-site.xml
$ nano mapred-site.xml
다음의 내용으로 수정해준다.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
$ nano yarn-site.xml
기존의 내용을 지우고 다음의 내용으로 수정해준다.
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/home/kjhov195/data/yarn/nm-local-dir</value>
</property>
<property>
<name>yarn.resourcemanager.fs.state-store.uri</name>
<value>/home/kjhov195/data/yarn/system/rmstore</value>
</property>
</configuration>
bash_profile
$ nano ~/.bash_profile
다음과 같이 수정해준다.
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# Anaconda
export ANACONDA_HOME="/home/kjhov195/anaconda3"
# Java
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
# Hadoop
export HADOOP_HOME="/home/kjhov195/hadoop"
# Path
export PATH=${ANACONDA_HOME}/bin:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
환경변수를 적용해준다.
$ source ~/.bash_profile
4. ssh
$ cd $HOME
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost
$ exit
local host에 접속 가능한 것을 확인할 수 있다.
5. run hadoop
$ cd $HADOOP_HOME
$ ./bin/hdfs namenode -format
# 데몬 실행
$ ./sbin/start-dfs.sh
$ ./sbin/start-yarn.sh
# 실행된 프로세스 확인
$ jps
다음과 같은 결과가 보인다면 데몬이 정상적으로 실행된 것이다.
18469 NodeManager
18728 Jps
18074 SecondaryNameNode
17676 NameNode
18252 ResourceManager
17853 DataNode
데몬을 중지하고 싶다면 다음과 같이 할 수 있다.
# 데몬 중지
$ ./sbin/stop-yarn.sh
$ ./sbin/stop-dfs.sh
Reference