Hadoophtml
Server1.example.com 172.25.23.1 masterjava
Server2.example.com 172.25.23.2 slavenode
Server3.example.com 172.25.23.3 slavelinux
Server4.example.com 172.25.23.4 slavevim
Selinux iptables disabled 加解析(節點間能夠ping通) sshd enaled安全
Hadoop1.2.1bash
一Master上進行存儲計算等 單機網絡
useradd -u 900 hadoopssh
echo westos | passwd --stdin hadoopjsp
su - hadoop
1.安裝java (若原來的機子上有java先卸載)
(1)
sh jdk-6u32-linux-x64.bin
mv jdk1.6.0_32 /home/hadoop
ln -s jdk1.6.0_32 java
(2)添加路徑
vim .bash_profile
export JAVA_HOME=/home/hadoop/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source .bash_profile
2.設置hadoop
tar zxf hadoop-1.2.1.tar.gz
ln -s hadoop-1.2.1 hadoop
3.無密碼ssh設置
ssh-keygen
ssh-copy-id 172.25.23.1
ssh 172.25.23.1 測試確保無密碼
4.配置文件進行修改
(1)設置從節點
vim hadoop/conf/slave
172.25.23.1
(2)設置主節點
vim hadoop/conf/master
172.25.23.1
(3) 修改java的家路徑
vim hadoop/conf/hadoop-env.sh
(4) 修改Hadoop核心配置文件core-site.xml配置的是HDFS的地址和端口號指定 namenode
vim hadoop/conf/core-site.xml
(5) 指定文件保存的副本數
vim hadoop/conf/hdfs-site.xml
(6) 指定 jobtracker
vim hadoop/conf/mapred-site.xml
5.開啓服務
(1) 格式化一個新的分佈式文件系統
bin/hadoop namenode -format
(2) 啓動 Hadoop 守護進程
bin/start-all.sh = bin/start-dfs.sh + bin/start-mapred.sh
(3) 查看進程
a)jps
b)bin/hadoop dfsadmin -report
7.一些hadoop的經常使用命令 ( 相似於linux的命令只是在前面增長了hadoop特有的 )
bin/hadoop fs -ls
mkdir input
cp conf/*.xml input
bin/hadoop jar hadoop-examples-1.2.1.jar grep input output 'dfs[a-z.]+'
bin/hadoop fs -cat output/*
bin/hadoop fs -put conf/ input
bin/hadoop fs -get output output
8.瀏覽 NameNode 和 JobTracker 的網絡接口,它們的地址默認爲:
NameNode – http://172.25.23.1:50070/
點擊Browse the filesystem 下的 /user/hadoop/ 可看到上傳的
JobTracker – http://172.25.23.1:50030/
二分佈式部署
先停掉master上的相關服務bin/stop-all.sh再刪掉/tmp/*
slave
1.目錄設置
useradd -u 900 hadoop
2.確保master能夠和slave無密碼鏈接
yum install -y rpcbind
/etc/init.d/rpcbind start (nfs的一箇中介服務用來通知客戶端)
3.同步數據 (nfs)
(1) 在master端 (分享節點root下進行)
/etc/init.d/nfs start
vim /etc/exports
exportfs -rv
(2) 在slave端掛載
yum install -y nfs-utils
showmount -e 172.25.23.1
mount 172.25.23.1:/home/hadoop /home/hadoop
Master
1.修改配置文件
(1) vim hadoop/conf/slave
172.25.23.2
172.25.23.3
(2) vim hadoop/conf/hdfs-site.xml
datanade保存2份
2.查看master可否與slave進行無密碼鏈接
ssh 172.25.23.2
若須要密碼則進行以下操做
(1)進入hadoop用戶查看權限顯示(正確的應顯示爲hadoop)
(2)解析是否正確
(3)rpcbind是否開啓
(4)若上述都正確則可進行
chkconfig rpcbind on
chkconfig rpcgssd on
chkconfig rpcidmapd on
chkconfig rpcsvcgssd on
reboot
則可無密碼鏈接
3.啓動服務
(1) 格式化一個新的分佈式文件系統
bin/hadoop namenode -format
(2) 啓動 Hadoop 守護進程
bin/start-all.sh
(3) 查看進程
master
slave
(4) 上傳文件
bin/hadoop fs -put conf/ input
(5) 訪問 172.25.23.150030
可看到有2個節點
172.25.23.150070
有文件上傳
三新增一個從節點(172.25.23.4)且將文件轉移
1.新增節點和已經配置好的從節點作相同的設置
yum install -y nfs-utils rpcbind
useradd -u 900 hadoop
/etc/init.d/rpcbind start
vim /etc/hosts
showmount -e 172.25.23.1
mount 172.25.23.1:/home/hadoop /home/hadoop
2.在master端修改slaves
添加 172.25.23.4
3.在新增的從節點上啓動服務加入集羣
bin/hadoop-daemon.sh start datanode
bin/hadoop-daemon.sh start tasktracker
4.在master上查看
bin/hadoop dfsadmin -report
......
......
可看到新增的節點
5.均衡數據:
bin/start-balancer.sh
1)若是不執行均衡,那麼 cluster 會把新的數據都存放在新的 datanode 上,這樣會下降 mapred的工做效率
2)設置平衡閾值,默認是 10%,值越低各節點越平衡,但消耗時間也更長bin/start-balancer.sh -threshold 5
6.數據轉移刪除
(1) vim hadoop/conf/mapred-site.xml
添加以下內容
(2) 添加須要刪除的主機名
vim /home/hadoop/hadoop/conf/hostexclude
172.25.23.3
(3) bin/hadoop dfsadmin -refreshNodes
此操做會在後臺遷移數據,等此節點的狀態顯示爲 Decommissioned,就能夠安全關閉了。能夠經過bin/hadoop dfsadmin -report查看 datanode 狀態
在作數據遷移時,此節點不要參與 tasktracker,不然會出現異常。
(4) 刪除tasktracker可在172.25.23.3上直接中止(上邊都沒有node節點了)
四恢復垃圾文件
1.編輯垃圾文件保留時間
vim hadoop/conf/core-site.xml
2.測試
刪除文件能夠發現多出了一個 .Trash目錄逐層進入該目錄直到找到所刪除的文件再將該文件mv到原來所在的目錄裏。能夠發現 .Trash裏面已經沒有文件了。
Hadoop2.6.4
分佈式部署(全部主從節點所有切換到su - hadoop )
一在和1.2.1版本相同的環境目錄nfs等都不變
本次配置使用的是1.2.1的機子(裏面的host rpcbind nfs 爲作修改)在從新配置2.6.4時先停掉全部的1.2.1版的hadoop服務刪掉java等連接刪除 /tmp/下的文件等
二Java配置
2.6.4的版本要求6或7的java版本
1.下載java安裝包 (在hadoop的家目錄下)
jdk-7u79-linux-x64.tar.gz
tar zxf jdk-7u79-linux-x64.tar.gz
ln -s jdk1.7.0_79/ java
2.配置java路徑 (同1.2的配置相同)
3.查看 版本號java -version
三Hadoop的配置
cd hadoop/etc/hadoop
1. vim core-site.xml
2. vim hdfs-site.xml
3. cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
4. vim yarn-site.xml
5. vim yarn-env.sh
6. vim etc/hadoop/hadoop-env.sh
7. vim slaves
172.25.23.2
172.25.23.3
172.25.23.4
四啓動服務
1.格式化
tar xf hadoop-native-64-2.6.0.tar -C hadoop/lib/native lib中最好將原來的另外保存或刪除將庫文件改爲64位的
bin/hdfs namenode -format
2.開啓服務
sbin/start-dfs.sh sbin/start-yarn.sh
3.查看進程
master
slave
5、上傳文件
1.建立保存的目錄( V1版本是自動建立的 )
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/hadoop
2.上傳文件
mkdir input
cp etc/hadoop/*.xml input
bin/hdfs dfs -put input
bin/hadoop jar hadoop-examples-1.2.1.jar wordcount input output bin/hadoop jar hadoop-examples-1.2.1.jar wordcount input output
3.訪問
172.25.23.1:8088
172.25.23.1:50070
將後面的.jsp改爲 .html便可訪問該頁面
問題
1.datanade沒有啓動
在關閉節點時會發現 no datanade to stop 。
每次格式化後都會建立一個namenodeID而tmp下包含了上次的IDnamenode - format清除了namenode下的數據可是沒有清空datanade下的數據致使啓動失敗所以每次格式化後都要清除掉主從節點下的/tmp/*的全部數據。
2.namenode in safe mode
執行bin/hadoop dfsadmin -safemode leave 便可
3.Exceeded MAX_FAILED_UNIQUE_FETCHES
這是由於程序中打開的文件太多了通常系統默認普通用戶不得超過1024
能夠切換到root修改 /etc/security/limits.conf
添加 hadoop - nproc 4096
hadoop - nofile 65535
- 可表明的是軟連接和硬連接 再切換到 hadoop 查看
4. vim hadoop/conf/core-site.xml
(在2.6.4下配置hadoop.tmp.dir參數)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://172.25.23.1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/tmp/namedir</value>
</property>
<property>
<name>dfs.datanade.data.dir</name>
<value>/home/hadoop/tmp/datadir</value>
</property>
</configuration>
若沒有配置這些參數則默認的臨時目錄是在/tmp/下而/tmp/目錄每次重啓都會清空必須從新format才能夠