참고 영상 링크 : https://www.youtube.com/watch?v=ieeCyhQ2PPM&feature=youtu.be

# hadoop용 user 추가 (불필요한 부분으로 보임)
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hadoopusr
$ sudo adduser hadoopusr sudo
$ sudo apt-get install openssh

$ su - hadoopusr
$ ssh-keygen -t rsa -P ""
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
$ ssh localhost
$ exit
# hadoop 파일 다운로드
$ wget <http://mirror.apache-kr.org/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz>
$ tar -xvzf hadoop-2.10.0.tar.gz

$ mkdir /usr/local/
$ mv hadoop-2.10.0 /usr/local/hadoop
$ chown -R hadoopusr /usr/local    # hadoopusr 추가한 경우 진행
# .bashrc에 환경변수 추가해주기
$ vi ~/.bashrc

'
### .bashrc에 추가할 내용
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64   # 설치된 java 버전으로 입력
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

### 동영상에는 없었으나 다른 에러 해결 과정에서 추가한 내용
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
'

$ source ~/.bashrc
# hadoop-env.sh 내용 변경
$ vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh

'
### export JAVA_HOME 있는 부분 찾아서 아래 내용으로 변경
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64    # .bashrc에 입력한 JAVA_HOME과 동일
'
# core-site.xml 내용 변경
$ vi /usr/local/hadoop/etc/hadoop/core-site.xml

'
<configuration>
<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9000</value>
</property>
</configuration>
'
# hdfs-site.xml 내용 변경
$ vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml

'
<configuration>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/usr/local/hadoop_tmp/hdfs/namenode</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/usr/local/hadoop_tmp/hdfs/datanode</value>
</property>
</configuration>
'
# yarn-site.xml 내용 변경
$ vi /usr/local/hadoop/etc/hadoop/yarn-site.xml

'
<configuration>
<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>
</configuration>
'
# mapred-site.xml 파일 추가 및 내용 변경
$ cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/mapred-site.xml
$ vi /usr/local/hadoop/mapred-site.xml

'
<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
</configuration>
'
# 정상 설치 확인 (pseudo distributed mode)
$ mkdir -p /usr/local/hadoop_space
$ mkdir -p /usr/local/hadoop_space_hdfs/namenode
$ mkdir -p /usr/local/hadoop_space_hdfs/datanode
$ chown -R hadoopusr /usr/local/hadoop_space

$ hostname
> [해당 서버의 hostname이 나올 것]
$ vi /etc/hosts
'
127.0.0.1 localhost [서버의 hostname]
'

$ bin/hdfs namenode -format
$ sbin/start-dfs.sh
$ sbin/start-yarn.sh
$ jps      # 아래와 같이 6개가 나오면 정상 설치된 것 (숫자는 다를 수 있음)
> 13946 NodeManager
> 12802 NameNode
> 13225 SecondaryNameNode
> 12994 DataNode
> 13753 ResourceManager
> 14010 Jps