hadoop2.2.0安裝筆記
NameNode 192.168.1.122 hadoop/hadoop
VM 192.168.1.123
DataNode1 192.168.1.124 datanode1/datanode1 hadoop/hadoop
DataNode2 192.168.1.125 datanode2/datanode2 hadoop/hadoop
一、在所有機器上安裝openssh-server
sudo apt-get install openssh-server
如果沒有找到openssh-server,請先執行sudo apt-get update更新
安裝完openssh-server之后,就可以使用ssh和xftp進行遠程登錄與上傳文件了
二、增加hadoop相關用戶與用戶組
sudo addgroup hadoop sudo adduser -ingroup hadoop hadoop
給hadoop用戶添加權限,打開/etc/sudoers文件
sudo vim /etc/sudoers
增加
hadoop ALL=(ALL:ALL) ALL
三、配置網絡映射
vim /etc/hosts
加入
192.168.1.122 NameNode1 192.168.1.124 DataNode1 192.168.1.125 DataNode2
重啟網絡,
sudo /etc/init.d/networking restart
相應的在各個節點中都加入這個映射配置
四、安裝JDK環境
下載jdk-7u60-linux-i586.tar.gz
解壓,并把解壓后的文件夾移動到/use/java下
tar -xzf jdk-7-linux-i586.tar.gz
mv JDK文夾 目標地址
打開/etc/profile增加如下腳本
export JAVA_HOME=/usr/java/jdk1.7.0_60 export JRE_HOME=/usr/java/jdk1.7.0_60/jre export HADOOP_HOME=/home/hadoop/hadoop-2.2.0 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/lib/native:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
使新的配置立即生效 source /etc/profile
如果出現找不到目錄之內的,可以先查看路徑是否正確,如果是62位系統,而當前安裝的是32位的JDK,需安裝32位的運行庫
sudo apt-get install ia32-libs
五、配置ssh免驗證登錄
切換到hadoop用戶
進入/home/hadoop/.ssh目錄(如果沒有,新建之)
ssh-keygen -t rsa
之后一路回車(產生秘鑰)
在所有的NodeData中也執行ssh-keygen -t rsa,把生成的.pub文件拷到NameNode1上
scp ~/.ssh/id_rsa.pub hadoop@namenode1:~/.ssh/datanode1.pub
在NameNode服務器把所有服務器的公鑰加入到用于認證的公鑰文件:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys cat ~/.ssh/datanode1.pub >> ~/.ssh/authorized_keys cat ~/.ssh/datanode2.pub >> ~/.ssh/authorized_keys
對authorized_keys進行授權
chmod 600 ~/.ssh/authorized_keys
再將NameNode的授權文件authorized_keys復制到到其他的機器上:
scp authorized_keys hadoop@datanode1:~/.ssh/
注意:此處需要設置.ssh目錄為700權限 .ssh/下所有文件為600權限
六、安裝hadoop
下載hadoop2.2.0 并解壓到/home/hadoop/用戶的目錄下
tar -xzf hadoop-2.2.0.tar.gz
進入hadoop2.2.0目錄,新建tmp目錄 mkdir tmp
七、配置hadoop
進入namenode1的hadoop2.2.0目錄,修改hadoop-env.sh與yarn-env.sh文件
cd /home/hadoop/hadoop-2.2.0/etc/hadoop
vim hadoop-env.sh,修改
export JAVA_HOME = ${JAVA_HOME}
為
export JAVA_HOME=/usr/java/jdk1.7.0_60
在同一路徑下找 core-site.xml,修改它在 < configuration >中添加:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode1:9000/</value> <description></description> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.2.0/tmp</value> <description>A base for other temporary directories.</description> </property> </configuration>
同一路徑下修改 mapred-site.xml因為缺省是沒有這個文件的,要用模板文件造一個,命令為:
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml加入
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> <final>true</final> </property> </configuration>
~
同一路徑下修改 hdfs-site.xml, 在 < configuration >中添加:
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop-2.2.0/dfs/name</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop-2.2.0/dfs/data</value> </property> </configuration>
配置文件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> <property> <name>yarn.resourcemanager.hostname</name> <value>namenode1</value> </property> </configuration>
在主節點namenode1上將上面配置好的程序文件,復制分發到各個從節點上:
scp -r /home/hadoop/hadoop-2.2.0 hadoop@datanode1:/home/hadoop/ scp -r /home/hadoop/hadoop-2.2.0 hadoop@datanode2:/home/hadoop/
八、啟動HDFS集群
經過上面配置以后,可以啟動HDFS集群。
為了保證集群啟動過程中不會出現問題,需要手動關閉每個節點上的防火墻,執行如下命令:
sudo service iptables stop
或者永久關閉防火墻:
sudo chkconfig iptables off sudo chkconfig ip6tables off
在主節點namenode1上,首先進行文件系統格式化操作,執行如下命令:
hadoop namenode -format
然后,可以啟動HDFS集群,執行如下命令:
start-all.sh
在node1(node2)上面運行jps,如果有DataNode、NodeManager二個進程,說明node1(node2)安裝好了。