32位LINUX下hadoop2.2.0從新編譯及安裝步驟

第一部分 Hadoop 2.2 下載html

         Hadoop咱們從Apache官方網站直接下載最新版本Hadoop2.2。官方目前是提供了linux32位系統可執行文件,因此若是須要在64位系統上部署則須要單獨下載src 源碼自行編譯(10樓評論中提供了一個解決方法連接)。java

下載地址:http://apache.claz.org/hadoop/common/hadoop-2.2.0/node

以下圖所示,下載紅色標記部分便可。若是要自行編譯則下載src.tar.gz.linux

SouthEast



第二部分 集羣環境搭建web

一、這裏咱們搭建一個由三臺機器組成的集羣:apache

192.168.0.1            cloud001       nn/snn/rm        redhat6 32bitubuntu

192.168.0.2            cloud002        dn/nm             redha6 32bitvim

192.168.0.3            cloud003        dn/nm             redha6 32bitoracle

1.1 上面各列分別爲IP、user/passwd、hostname、在cluster中充當的角色(namenode, secondary namenode, datanode , resourcemanager, nodemanager)app

1.2   Hostname能夠在/etc/hostname中修改(ubuntu是在這個路徑下,redhat稍有不一樣)

1.3  這裏咱們爲每臺機器新建了一個帳戶hduser.這裏須要給每一個帳戶分配sudo的權限。(切換到root帳戶,修改/etc/sudoers文件,增長:hduser  ALL=(ALL) ALL )

二、修改/etc/hosts 文件,增長三臺機器的ip和hostname的映射關係

               192.168.0.1     cloud001

               192.168.0.2     cloud002

               192.168.0.3     cloud003

三、打通cloud001到cloud00二、cloud003的SSH無密碼登錄

3.1 安裝ssh

3.2設置local無密碼登錄

安裝完成後會在~目錄(當前用戶主目錄,即這裏的/home/hduser)下產生一個隱藏文件夾.ssh(ls  -a 能夠查看隱藏文件)。若是沒有這個文件,本身新建便可(mkdir .ssh)。

具體步驟以下:

一、 進入.ssh文件夾

二、 ssh-keygen -t  rsa 以後一路回 車(產生祕鑰)

三、 把id_rsa.pub 追加到受權的 key 裏面去(cat id_rsa.pub >> authorized_keys)

四、 重啓 SSH 服 務命令使其生效 :service sshd restart(這裏RedHat下爲sshdUbuntu下爲ssh)

此時已經能夠進行ssh localhost的無密碼登錄

3.3設置遠程無密碼登錄

這裏只有cloud001是master,若是有多個namenode,或者rm的話則須要打通全部master都其餘剩餘節點的免密碼登錄。(將001的authorized_keys追加到002和003的authorized_keys)

進入001的.ssh目錄

scp authorized_keys hduser@cloud002:~/.ssh/ authorized_keys_from_cloud001

進入002的.ssh目錄

cat authorized_keys_from_cloud001>> authorized_keys

至此,能夠在001上面sshhduser@cloud002進行無密碼登錄了。003的操做相同。

四、安裝jdk(建議每臺機器的JAVA_HOME路徑信息相同)

注意:這裏選擇下載jdk並自行安裝,而不是經過源直接安裝(apt-get install)

4.一、下載jkd( http://www.oracle.com/technetwork/java/javase/downloads/index.html

4.1.1 32位的系統能夠下載如下兩個Linux x86版本(uname -a 查看系統版本)

4.1.2  64位系統下載Linux x64版本(即x64.rpm和x64.tar.gz)

SouthEast


4.二、安裝jdk(這裏以.tar.gz版本,64位系統爲例)

安裝方法參考http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html

4.2.1 選擇要安裝java的位置,如/usr/目錄下,新建文件夾java(mkdirjava)

4.2.2 將文件jdk-7u40-linux-i586.tar.gz移動到/usr/java

4.2.3 解壓:tar -zxvf jdk-7u40-linux-x64.tar.gz

4.2.4 刪除jdk-7u40-linux-x64.tar.gz(爲了節省空間)

至此,jkd安裝完畢,下面配置環境變量

4.三、打開/etc/profile(vim /etc/profile)

在最後面添加以下內容:

JAVA_HOME=/usr/java/jdk1.7.0_40(這裏的版本號1.7.40要根據具體下載狀況修改)

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOMECLASSPATH PATH

4.四、source /etc/profile

4.五、驗證是否安裝成功:java–version

【注意】每臺機器執行相同操做,最後將java安裝在相同路徑下

五、關閉每臺機器的防火牆

RedHat:

/etc/init.d/iptables stop 關閉防火牆。

chkconfig iptables off 關閉開機啓動。

Ubuntu:

ufw disable (重啓生效)


第三部分 Hadoop 2.2安裝過程

       因爲hadoop集羣中每一個機器上面的配置基本相同,因此咱們先在namenode上面進行配置部署,而後再複製到其餘節點

一、 解壓文件

      將第一部分中下載的hadoop-2.2.tar.gz解壓到/home/hduser路徑下(或者將在64位機器上編譯的結果存放在此路徑下)。而後爲了節省空間,可刪除此壓縮文件,或將其存放於其餘地方進行備份。

二、 hadoop配置過程

配置以前,須要在cloud001本地文件系統建立如下文件夾:

~/dfs/name

~/dfs/data

~/temp

這裏要涉及到的配置文件有7個:

~/hadoop-2.2.0/etc/hadoop/hadoop-env.sh

~/hadoop-2.2.0/etc/hadoop/yarn-env.sh

~/hadoop-2.2.0/etc/hadoop/slaves

~/hadoop-2.2.0/etc/hadoop/core-site.xml

~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

以上個別文件默認不存在的,能夠複製相應的template文件得到。


配置文件1:hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_40)


配置文件2:yarn-env.sh

修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk1.7.0_40)


配置文件3:slaves (這個文件裏面保存全部slave節點)

寫入如下內容:

cloud002

cloud003


配置文件4:core-site.xml

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>   //系統分佈式URL  

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hadoop/temp</value>

</property>

<property>

<name>hadoop.proxyuser.hadoop.hosts</name>

<value>*</value>

</property>  

<property>  

<name>hadoop.proxyuser.hadoop.groups</name>  

<value>*</value>  

</property>  

注意fs.defaultFS爲2.2.0新的變量,代替舊的:fs.default.name


配置文件5:hdfs-site.xml

<property>  

<name>dfs.namenode.secondary.http-address</name>  

<value>master:9001</value>  

</property>  


<property>  

<name>dfs.namenode.name.dir</name>  

<value>/home/hadoop/dfs/name</value>  

</property>  


<property>  

<name>dfs.datanode.data.dir</name>  

<value>/home/hadoop/dfs/data,/mnt/d1,/mnt/d2,/mnt/d3</value>

</property>  


<span style="white-space:pre">  

</span>


<property>  

<name>dfs.replication</name>  

<value>3</value>  

</property>  


<property>  

<name>dfs.webhdfs.enabled</name>

<value>true</value>  

</property>

新的:dfs.namenode.name.dir,舊:dfs.name.dir

新的:dfs.datanode.name.dir,舊:dfs.data.dir

dfs.replication肯定 data block的副本數目,hadoop基於rackawareness(機架感知)默認複製3份分block,(同一個rack下兩個,另外一個rack下一 份,按照最短距離肯定具體所需block, 通常不多采用跨機架數據塊,除非某個機架down了)


配置文件6:mapred-site.xml

配置其使用 Yarn 框架執行 map-reduce 處理程序

這個地方須要把mapred-site.xml.template複製從新命名


<property>  

<name>mapreduce.framework.name</name>  

<value>yarn</value>  

</property>  


<property>  

<name>mapreduce.jobhistory.address</name>  

<value>master:10020</value>  

</property>  


<property>  

<name>mapreduce.jobhistory.webapp.address</name>  

<value>master:19888</value>  

</property>  

新的計算框架取消了實體上的jobtracker, 故不須要再指定mapreduce.jobtracker.addres,而是要指定一種框架,這裏選擇yarn,hadoop2.2.還支持第三方的計算框架。


配置文件7:yarn-site.xml

配置ResourceManager,NodeManager的通訊端口,WEB監控端口等

<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.address</name>  

<value>master:8032</value>  

</property>  

<property>  

<name>yarn.resourcemanager.scheduler.address</name>  

<value>master:8030</value>  

</property>  

<property>  

<name>yarn.resourcemanager.resource-tracker.address</name>  

<value>master:8031</value>  

</property>  

<property>  

<name>yarn.resourcemanager.admin.address</name>  

<value>master:8033</value>  

</property>  

<property>  

<name>yarn.resourcemanager.webapp.address</name>  

<value>master:8088</value>  

</property>


三、複製到其餘節點


四、啓動驗證

4.1 啓動hadoop

進入安裝目錄: cd  ~/hadoop-2.2.0/

格式化namenode:./bin/hdfs namenode –format

啓動hdfs: ./sbin/start-dfs.sh

此時在001上面運行的進程有:namenode secondarynamenode

002和003上面運行的進程有:datanode

啓動yarn: ./sbin/start-yarn.sh

此時在001上面運行的進程有:namenode secondarynamenoderesourcemanager

002和003上面運行的進程有:datanode nodemanaget

查看集羣狀態:./bin/hdfs dfsadmin –report

查看文件塊組成:  ./bin/hdfsfsck / -files -blocks

查看HDFS:    http://16.187.94.161:50070

查看RM:    http:// 16.187.94.161:8088

4.2 運行示例程序:

先在hdfs上建立一個文件夾

./bin/hdfs dfs –mkdir /input

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jarrandomwriter input

相關文章
相關標籤/搜索