工欲善其事,必先利其器,啥都不說,hadoop下載下傳:http://archive.cloudera.com/cdh5/cdh/5/ 選擇好相應版本搞起
在本文講述的是 圍繞hadoop-2.3.0-cdh5.1.2版本安裝過程。(安裝環境為自己在vmware 10裡面搭建的三台linux 虛拟機)
1、hadoop 是大apache開源的分布式離線計算架構,語言:java,既然這樣,要想搭建hadoop環境(不管僞分布式 還是多機叢集),那必須在伺服器上安裝好jdk。
簡單過程簡單說,簡要描述下jdk安裝配置過程(據說,hadoop-2.3.0需要jdk1.7+版本支援,咱也不管了,那就裝吧,版本:jdk-7u67-linux-i586.tar.gz,安裝新jdk之前記得找到linux自帶的jdk版本并删除,不明白處自百之)
a、解壓到/usr/java目錄下
tar xvf jdk-7u67-linux-i586.tar.gz -c /usr/java
b、 vi /etc/profile
export java_home=/usr/java/jdk1.7.0_67
export classpath=/usr/java/jdk1.7.0_67/lib
export path=$java_home/bin:$path
c、source /etc/profile //不重新開機伺服器情況下,這句讓配置檔案生效
d、java -version //驗證jdk是否正确安裝
2、我們先規劃好三台機,并制定好 三台機之後的角色:
主機名 ip 角色
master 192.168.140.128 namenode resourcemanager
slave1 192.168.140.129 datenode nodemanager
slave2 192.168.140.130 datenode nodemanager
3、修改 主機名:
root 權限下:vi /etc/sysconfig/network
修改内容:hostname=master (同理 兩台slave主機也要修改此配置,并配置設定相應的名字)
同時 vi /etc/hosts ( 同理 兩台slave主機也要修改此配置,并配置設定相應的hosts對應關系)
127.0.0.1 master
192.168.140.129 slave1
192.168.140.130 slave2
修改完重新開機:reboot
4、建立hadoop使用者(包括兩台slave):
useradd hadoop
passwd hadoop
5、master上配置ssh免密碼登入
su hadoop //切換到hadoop使用者目錄下
ssh-keygen-t rsa(一路回車 生成密鑰)
cd/home/hadoop/.ssh/
ls //檢視是否有生成兩個檔案 id_rsa.pub id_rsa
6、同步ssh資訊到兩台slave, 登入兩台slave
mkdir /home/hadoop/.ssh
scp id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/
mv id_rsa.pub authorized_keys
7、建立hadoop安裝目錄 (root權限下操作)
mkdir -p /data/hadoop
8、 解壓下載下傳下來的hadoop安裝包到安裝目錄(root權限下操作)
tar xvf hadoop-2.3.0-cdh5.1.2.tar.gz -c/data/hadoop
9、将安裝目錄權限賦予給 hadoop使用者:(root權限下操作)
chown -r hadoop.hadoop /data/hadoop/
10、配置hadoop安裝資訊和路徑(root權限下操作)
vi /etc/profile (在最後加上下面内容)
export hadoop_home=/data/hadoop
export path=$hadoop_home/bin:$java_home/bin:$path
source /etc/profile //讓配置生效
11、master上/data/hadoop/etc/hadoop
vi slaves
slave1
slave2
vi masters
master
12、修改如下幾個檔案,并在中間添加以下相應内容:
a、vi core-site.xml
<configuration>
<property>
<name>fs.defaultfs</name>
<value>hdfs://master:9000</value>
</property>
<name>io.file.buffer.size</name>
<value>131072</value>
<name>hadoop.tmp.dir</name>
<value>file:/data/hadoop/tmp</value>
</configuration>
b、vi hdfs-site.xml
<name>dfs.namenode.name.dir</name>
<value>file:/data/hadoop/dfs/name</value>
<name>dfs.namenode.data.dir</name>
<value>file:/data/hadoop/dfs/data</value>
<name>dfs.replication</name>
<value>2</value>
c、vi yarn-site.xml
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.shufflehandler</value>
d、mapred-site.xml
<name>mapreduce.framework.name</name>
<value>yarn</value>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
至此 配置檔案基本配置完畢。
13、将master上的hadoop安裝檔案同步到slave1 slave2,(hadop使用者權限下即可)
cd /data/hadoop
scp -r /data/hadoop/*hadoop@slave1:/data/hadoop/ //同步到slave1
scp -r /data/hadoop/*hadoop@slave2:/data/hadoop/ //同步到slave2
14、最後我們來到 /data/hadoop/bin目錄下
./hadoop namenode -format //啟動hadoop
15、如果沒有報錯資訊,基本是可以說 hadoop起來了,随便截取了最後幾段日志:
15/01/13 18:08:10 info util.gset:vm type = 32-bit
15/01/13 18:08:10 info util.gset:0.25% max memory 966.7 mb = 2.4 mb
15/01/13 18:08:10 info util.gset:capacity = 2^19 = 524288 entries
15/01/13 18:08:10 infonamenode.fsnamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033
15/01/13 18:08:10 infonamenode.fsnamesystem: dfs.namenode.safemode.min.datanodes = 0
15/01/13 18:08:10 infonamenode.fsnamesystem: dfs.namenode.safemode.extension = 30000
15/01/13 18:08:10 infonamenode.fsnamesystem: retry cache on namenode is enabled
15/01/13 18:08:10 infonamenode.fsnamesystem: retry cache will use 0.03 of total heap and retry cacheentry expiry time is 600000 millis
15/01/13 18:08:10 info util.gset:computing capacity for map namenoderetrycache
15/01/13 18:08:10 info util.gset:0.029999999329447746% max memory 966.7 mb = 297.0 kb
15/01/13 18:08:10 info util.gset:capacity = 2^16 = 65536 entries
15/01/13 18:08:10 infonamenode.aclconfigflag: acls enabled? false
re-format filesystem in storagedirectory /data/hadoop/dfs/name ? (y or n) y
15/01/13 18:08:17 infonamenode.fsimage: allocated new blockpoolid:bp-729401054-127.0.0.1-1421143697660
15/01/13 18:08:17 infocommon.storage: storage directory /data/hadoop/dfs/name has been successfullyformatted.
15/01/13 18:08:18 infonamenode.nnstorageretentionmanager: going to retain 1 images with txid >= 0
15/01/13 18:08:18 infoutil.exitutil: exiting with status 0
15/01/13 18:08:18 infonamenode.namenode: shutdown_msg:
/************************************************************
shutdown_msg: shutting downnamenode at master/127.0.0.1
************************************************************/
程式員幹久了,性格沉悶,言辭幹癟,簡單的描述隻為做個記錄,多多指教