近日得空,將過去一年記錄下的工作日志整理一下,希望對開始從事Hadoop開發的同學有所幫助。
安裝環境如下:
Linux: Centos6.5
Jdk: jdk-7u79-linux-x64
Hadoop: hadoop-2.5.2.tar
一.為方便記憶,修改一下主機名:
修改一下兩個文件
vim /etc/sysconfig/network
vim /etc/hosts(此步驟可以不必設置,沒有效果)
重啟一下,再查看是否成功
重啟:reboot
查看機器名:hostname
現在開始安裝hadoop 2.5.2
創建hadoop用戶
useradd hadoop
為hadoop設置密碼
passwd hadoop (輸入兩次)
SSH 無密碼登陸,切換到hadoop用戶
su hadoop
ssh-keygen -t rsa -P ''(實際使用的是ssh-keygen -t rsa)另外最后為2個單引號,不是雙引號,也可改為2個雙引號,代表 p password 為空。
此語句輸入后,一直按enter默認選擇即可。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2)設置SSH配置
用root用戶登錄服務器修改SSH配置文件"/etc/ssh/sshd_config"的下列內容。
vim /etc/ssh/sshd_config
RSAAuthentication yes # 啟用 RSA 認證
PubkeyAuthentication yes # 啟用公鑰私鑰配對認證方式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰文件路徑(和上面生成的文件同)
修改權限:
chmod 700 /home/hadoop/.ssh/authorized_keys
設置完之后記得重啟SSH服務,才能使剛才設置有效。
service sshd restart
退出root登錄,使用hadoop普通用戶驗證是否成功,
ssh localhost
不再需要輸入密碼便成功了
二.下載hadoop安裝包
可以去Apache官方網站下載,或者國內鏡下載。
阿里雲鏡像下載: http://mirrors.aliyun.com/
Apache官方下載:http://hadoop.apache.org/releases.html
trieuvan下載:http://www.trieuvan.com/apache/
這里使用之前配置好的ftp服務,上傳本地已下載好的hadoop-2.5.2安裝包。
1. 拷貝安裝包到/usr/local 目錄,並且解壓。
拷貝:
cp /home/ftpuser/hadoop-2.5.2.tar.gz /usr/local/
進入目錄:
cd /usr/local/
解壓:
tar -zxvf hadoop-2.5.2.tar.gz
刪除安裝包:
rm -f hadoop-2.5.2.tar.gz
更改用戶,用戶組
chown -R hadoop:hadoop hadoop-2.5.2/ (注意要到相應的hadoop安裝文件夾的目錄中操作執行,當前用戶為root)
修改hadoop2.5.2安裝目錄名稱
mv hadoop-2.5.2 hadoop
2.修改配置
在/home/hadoop/.bashrc文件末尾添加下列內容:
vim /home/hadoop/.bashrc
#HADOOP START
export JAVA_HOME=/usr/local/java/jdk1.7.0_79
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP END
保存退出后,激活新加的環境變量
source /home/hadoop/.bashrc
3.測試驗證
創建輸入的數據,暫時采用/etc/protocols文件作為測試
cd /usr/local/hadoop
mkdir input
cp /etc/protocols ./input
執行自帶的單詞統計程序,驗證單機安裝是否正確
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.5.2-sources.jar org.apache.hadoop.examples.WordCount input output
查看生成的單詞統計數據
cat output/*
自此單機安裝結束。
在單機模式的基礎上進一步配置出偽分布模式。
要修改以下文件,在/usr/local/hadoop/etc/hadoop/目錄下,如圖
1.配置文件修改
1).修改core-site.xml
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
2).修改hdfs-site.xml
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
3).修改mapred-site.xml
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
4).修改yarn-site.xml
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<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>
5).修改hadoop-env.sh
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
找到 #export JAVA_HOME=${JAVA_HOME} 修改為:
export JAVA_HOME=/usr/local/java/jdk1.7.0_79
偽分布式模式就配置好了。
2.格式化HDFS文件系統
切換到hadoop用戶
hadoop namenode -format
會輸出如下信息,則表格式化HDFS成功:
四、Hadoop集群啟動
1.啟動hdfs守護進程,分別啟動NameNode和DataNode
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
以上兩個命令等於:start-dfs.sh
2.啟動yarn,使用如下命令啟ResourceManager和NodeManager:
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
或者等價於下面:
start-yarn.sh
全部啟動完成后,用jps查看進程
3.檢查是否運行成功
打開瀏覽器
輸入:http://localhost:8088進入ResourceManager管理頁面
輸入:http://localhost:50070進入HDFS頁面
如果打不開,可能是8088和50070端口沒打開。
vi /etc/sysconfig/iptables
加入以下內容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT
然后重啟路由生效
service iptables restart
六、偽分布測試驗證
創建目錄:
hadoop dfs -mkdir /user
hadoop dfs -mkdir /user/hadoop
hadoop dfs -mkdir /user/hadoop/input
拷貝測試數據:
hadoop dfs -put /etc/protocols /user/hadoop/input
查看已經准備好的測試數據
hadoop dfs –ls /user/hadoop/input
執行應用
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.5.2-sources.jar org.apache.hadoop.examples.WordCount input output
查看生成結果
hadoop dfs -cat /user/hadoop/output/*
七、關閉服務,注意關閉順序
輸入命令
hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode
yarn-daemon.sh stop resourcemanager
yarn-daemon.sh stop nodemanager
或者
stop-dfs.sh
stop-yarn.sh