hadoop的基本搭建

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

wKiom1fP9Jyif9haAAA5OPma_ME817.png 

(4) 修改Hadoop核心配置文件core-site.xml配置的是HDFS的地址和端口號指定 namenode

vim hadoop/conf/core-site.xml

wKiom1fP83uBTUCwAACdd3dy1M4347.png 

(5) 指定文件保存的副本數

vim hadoop/conf/hdfs-site.xml

wKioL1fP832SqRo8AACeDcOpflY753.png 

(6) 指定 jobtracker

vim hadoop/conf/mapred-site.xml

wKiom1fP84CRDbLcAACgBF0WhxM298.png 

5.開啓服務

(1) 格式化一個新的分佈式文件系統

bin/hadoop namenode -format   

(2) 啓動 Hadoop 守護進程

bin/start-all.sh = bin/start-dfs.sh + bin/start-mapred.sh

(3) 查看進程

a)jps

wKioL1fP84Pww7xvAABYvKvRQ78737.png 

b)bin/hadoop dfsadmin -report

wKioL1fP84eijD85AAFjXSOiFCk453.png
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/

wKiom1fP84mjJ-WLAACc8ly-yi4371.png 

點擊Browse the filesystem 下的 /user/hadoop/ 可看到上傳的

wKiom1fP842zlca_AAB_9tGQGhY307.png 

JobTracker http://172.25.23.1:50030/

wKioL1fP842giBvDAACzM7oAE30855.png 

 

 

分佈式部署

先停掉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

wKiom1fP847y6AFHAAAijOGYWGY535.png 

exportfs -rv

(2) slave端掛載

yum install -y nfs-utils

showmount -e 172.25.23.1

wKioL1fP84-Q9ro0AAAylo-_Usw864.png 

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

wKioL1fP86rAcVjgAACeSLxFpLM697.png 

2.查看master可否與slave進行無密碼鏈接

ssh 172.25.23.2

  若須要密碼則進行以下操做

(1)進入hadoop用戶查看權限顯示(正確的應顯示爲hadoop)

wKiom1fP86-hKF7ZAADA7xfih6s443.png 

(2)解析是否正確

(3)rpcbind是否開啓

(4)若上述都正確則可進行

chkconfig rpcbind on

chkconfig rpcgssd on

chkconfig rpcidmapd on

chkconfig rpcsvcgssd on

reboot

wKioL1fP87GifPFiAACvKyl0_bI139.png 

則可無密碼鏈接

3.啓動服務

(1) 格式化一個新的分佈式文件系統

bin/hadoop namenode -format   

(2) 啓動 Hadoop 守護進程

bin/start-all.sh

(3) 查看進程

master

wKioL1fP87LSw1KHAABKCnIsoFU808.png 

slave

wKiom1fP87Kx-7dTAAAt_mK-3po686.png 

(4) 上傳文件

bin/hadoop fs -put conf/ input

(5) 訪問 172.25.23.150030

wKioL1fP87mjtdE9AAB9siGZfkw413.png 

可看到有2個節點

172.25.23.150070

wKiom1fP87zj6lt_AAE6h20ROZ0076.png 

有文件上傳

 

新增一個從節點(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

......

wKioL1fP893BeWP7AAAawtzwnNM195.png 

......

wKioL1fP8-DBwASlAACwSR2om6Q626.png 

可看到新增的節點

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

添加以下內容

wKiom1fP8-fjMMVrAADrYM2c-9Y295.png 

(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

 

wKiom1fP8-qTcIG2AADoRych9WE987.png 

2.測試

刪除文件能夠發現多出了一個 .Trash目錄逐層進入該目錄直到找到所刪除的文件再將該文件mv到原來所在的目錄裏。能夠發現 .Trash裏面已經沒有文件了。

wKioL1fP8_nAd581AAJxiRi5RpE554.png 

 

 

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的版本要求67java版本

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

wKiom1fP8_zT2Pc0AABn0PEQtrE009.png 

Hadoop的配置

cd hadoop/etc/hadoop

1. vim core-site.xml

wKioL1fP8_2BgBwxAABXv2FXxTk800.png 

2. vim hdfs-site.xml

wKioL1fP8_-hjZNqAABMKKSSlQM474.png 

3. cp mapred-site.xml.template mapred-site.xml

vim mapred-site.xml

wKiom1fP9ADi9SOHAABVoJWDSN4583.png 

 

4. vim yarn-site.xml

wKioL1fP9AHwonmzAABc8bRyEzc782.png 

5. vim yarn-env.sh

wKiom1fP9APQZ0k0AACUBphc-Pw282.png 

6. vim etc/hadoop/hadoop-env.sh

wKioL1fP9ASyE3bPAAAwmhp6XpY852.png 

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

wKiom1fP9ATyf8x_AABM1Wp3VU4496.png 

slave

wKiom1fP9AXStPzYAAAy0L80E4Q957.png 

 

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

spacer.gif

 

172.25.23.1:50070

將後面的.jsp改爲 .html便可訪問該頁面

wKioL1fP-dCR_87wAACXMkT2xGM768.png 

 

 

 

 問題

1.datanade沒有啓動

在關閉節點時會發現 no datanade to stop

wKiom1fP-dLDFL6rAADCjwtThNM272.png 

每次格式化後都會建立一個namenodeIDtmp下包含了上次的IDnamenode - format清除了namenode下的數據可是沒有清空datanade下的數據致使啓動失敗所以每次格式化後都要清除掉主從節點下的/tmp/*的全部數據。

 

2.namenode in safe mode

執行bin/hadoop dfsadmin -safemode leave 便可

 

3.Exceeded MAX_FAILED_UNIQUE_FETCHES

這是由於程序中打開的文件太多了通常系統默認普通用戶不得超過1024

wKioL1fP-daC5UfFAAE7qMbWBr4896.png 

能夠切換到root修改 /etc/security/limits.conf

添加 hadoop  -  nproc  4096

  hadoop  -  nofile  65535

- 可表明的是軟連接和硬連接 再切換到 hadoop 查看

wKioL1fP-ejhiSm7AAEkh7IJiG4510.png 

 

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才能夠   

相關文章
相關標籤/搜索