CentOS6.5安裝Hadoop2.7.1

1、軟件準備

下載Hadoop  http://apache.fayea.com/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gzjava

下載JDK http://download.oracle.com/otn-pub/java/jdk/8u66-b17/jdk-8u66-linux-x64.tar.gznode


2、服務器準備(三臺服務器,最好4臺)linux

最好4臺服務器,1臺namenode,3臺datanode(hadoop默認副本數爲3),若是空餘的話能夠加一個secondnode(namenode的備用節點,聽說已經經過zookper實現了熱備,這個有待考證。)web

準備三臺服務器:
shell

    角色                              IP               主機名apache

    Namenode     192.168.63.227     NameNodevim

    Datanode       192.168.63.202          node1windows

    Datanode        192.168.63.203         node2服務器

3、服務器環境準備(每臺服務器都執行)

一、每臺機器都同步時間

 ntpdate time.windows.com

二、每臺機器都關閉iptables、關閉selinux    

service iptables stop;chkconfig iptables off
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux; setenforce 0

三、每臺服務器都修改/etc/hosts文件

    增長以下內容:oracle

192.168.63.227     NameNode
192.168.63.202     node1
192.168.63.203     node2

四、每臺服務器增長一個運行hadoop的用戶(可選,測試環境可用root用戶啓動)

    

useradd hduser && echo "123456" | passwd --stdin hduser

五、每臺服務器都配置java環境(這裏用的是jdk-8.66,需jdk7以上)

tar xf jdk-8u66-linux-x64.tar.gz -C /usr/local/
vim /etc/profile.d/java.sh

        輸入:            

JAVA_HOME=/usr/local/jdk1.8.0_66
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
執行:
source /etc/profile.d/java.sh


    執行:java -version 查看java版本是否已經變成最新的。

六、每臺服務器都配置Hadoop環境(這裏使用的是Hadoop2.7.1,先不用安裝Hadoop。)

   

vim /etc/profile.d/hadoop.sh

輸入:            

HADOOP_HOME=/usr/local/hadoop
PATH=$HADOOP_HOME/bin:$PATH
PATH=$HADOOP_HOME/sbin:$PATH
export HADOOP_HOME PATH
執行:
source /etc/profile.d/hadoop.sh


4、配置NameNode到其餘節點ssh免密登錄

    若是是非root用戶啓動Hadoop,這裏配置指定用戶的ssh免密登錄(例如上面增長了用戶hduser,這裏要配置hduser的免密登錄,須要先su - hduser)

ssh-keygen -t rsa -P ''(一路回車,不要輸入密碼)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@namenode(這裏要特別注意,也要配置到本機的ssh免密登錄)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2


5、配置Hadoop(在NameNode服務器上進行操做)

一、安裝Hadoop

tar xf hadoop-2.7.1.tar.gz -C /usr/local/
ln -sv /usr/local/hadoop-2.7.1 /usr/local/hadoop
(若是以非root用戶啓動Hadoop,執行:chown -R hduser. /usr/local/hadoop-2.7.1/)


二、配置Hadoop

    建立目錄:

cd /usr/local/hadoop
mkdir tmp && mkdir -p hdfs/data && mkdir -p hdfs/name

    修改配置文件:      

cd /usr/local/hadoop
vim etc/hadoop/core-site.xml

        在<configuration>中間插入:

<property>
<name>fs.defaultFS</name>
<value>hdfs://NameNode:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:///usr/local/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>


vim etc/hadoop/hdfs-site.xml

        在<configuration>中間插入:

<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>


        

cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml

        在<configuration>中間插入:

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<final>true</final>
</property>
<property>
      <name>mapreduce.jobtracker.http.address</name>
      <value>NameNode:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>NameNode:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>NameNode:19888</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>http://NameNode:9001</value>
</property>

        

vim etc/hadoop/yarn-site.xml

        在<configuration>中間插入:

<property>
<name>yarn.resourcemanager.hostname</name>
<value>NameNode</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>NameNode:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>NameNode:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>NameNode:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>NameNode:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>NameNode:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>1</value>
</property>


    修改etc/hadoop/slaves   

        刪除localhost,把全部的datanode添加到這個文件中。

        增長:

            node1

            node2

6、複製haoop到其餘節點

將NameNode服務器上的hadoop整個copy到另外2個節點上(NameNode節點執行)

scp -r hadoop-2.7.1 root@node1:/usr/local/
scp -r hadoop-2.7.1 root@node2:/usr/local/

在全部節點上執行:

 ln -sv /usr/local/hadoop-2.7.1 /usr/local/hadoop


7、格式化(namenode節點執行)

cd /usr/local/hadoop

#格式化namenode

hdfs namenode -format

 

8、啓動Hadoop(namenode節點執行)

登錄到NameNode節點: 執行:start-all.sh(以前已經配置過hadoop的環境變量了,因此直接執行就能夠。)

若是是非root用戶啓動,須要su - hduser,而後再執行 start-all.sh

中止:stop-all.sh

9、驗證

在全部節點上執行:

    hadoop dfsadmin -report

出現相似下圖結果:

[root@node1 ~]# hadoop dfsadmin -report
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

15/11/13 22:39:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Configured Capacity: 37139136512 (34.59 GB)
Present Capacity: 27834056704 (25.92 GB)
DFS Remaining: 27833999360 (25.92 GB)
DFS Used: 57344 (56 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (2):

Name: 192.168.63.202:50010 (node1)
Hostname: node1
Decommission Status : Normal
Configured Capacity: 18569568256 (17.29 GB)
DFS Used: 28672 (28 KB)
Non DFS Used: 4652568576 (4.33 GB)
DFS Remaining: 13916971008 (12.96 GB)
DFS Used%: 0.00%
DFS Remaining%: 74.95%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Fri Nov 13 22:39:28 CST 2015


Name: 192.168.63.203:50010 (node2)
Hostname: node2
Decommission Status : Normal
Configured Capacity: 18569568256 (17.29 GB)
DFS Used: 28672 (28 KB)
Non DFS Used: 4652511232 (4.33 GB)
DFS Remaining: 13917028352 (12.96 GB)
DFS Used%: 0.00%
DFS Remaining%: 74.95%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Fri Nov 13 22:39:27 CST 2015

在namenode節點上執行命令:jps

[root@NameNode ~]# jps
7187 Jps
3493 NameNode
3991 SecondaryNameNode
4136 ResourceManager

在datanode節點上執行jps

[root@node1 ~]# jps
2801 NodeManager
3970 Jps
2698 DataNode

訪問hadoop的web頁面:

    http://namenode:8088
    http://namenode:50070

相關文章
相關標籤/搜索