Hadoop社區版搭建


1.環境准備

1.1 硬件配置

設備名 參數
數量 6台
系統 centos6.5
內存 64G
硬盤 32T/台
CPU 16核/台

1.2 軟件版本

Hadoop-2.x 下載地址

JDK1.7  下載地址

 

至此搭建Hadoop集群的條件准備OK了。

 

2.創建Hadoop用戶

在管理Hadoop集群時,不推薦使用root用戶去操作,我們可以通知運維,叫他創建一個hadoop用戶去專門用於維護和管理集群。

useradd hadoop
passwd hadoop

同時通知運維給hadoop用戶開通sudo權限。

hadoop    ALL=(ALL:ALL)    ALL

這樣創建完用戶后,我們接下來是在該用戶下安裝ssh,然各個服務器之間能夠實現免密碼登錄。

3.SSH安裝

a.首先在hadoop用戶下安裝ssh,保證服務器之間能夠免密碼登錄

b.關閉各個服務器的內網防火牆,在外網由運維統一配置防火牆。

注:若不關閉防火牆,后面啟動集群會由於權限不足導致啟動失敗

安裝命令:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

注:在hadoop用戶下,需要給authorized_keys賦予600的權限,不然免密碼登陸無效

chmod 600 authorized_keys

這樣免密碼登錄就算完成了。

注:每天服務器安裝完ssh后,需登錄一次ssh,不然know_hosts木有記錄,其他集群啟動會出現can't be established

關閉防火牆:

chkconfig  iptables off

這樣第三步就ok了。接下來是安裝JDK

4.安裝JDK

將下載的jdk包解壓到指定位置,然后配置環境變量即可:

sudo vi /etc/profile
JAVA_HOME=/usr/jdk1.7
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

然后讓配置文件立即生效:

. /etc/profile (或source /etc/profile)

驗證:

[hadoop@cloud001 portal]$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

5. 配置hadoop

將下載的hadoop-2.5.1安裝包解壓到指定的位置,然后配置etc目下的文件和環境變量,首先我們先配置環境變量:

sudo vi /etc/profile
HADOOP_DEV_HOME=/home/hadoop/source/hadoop-2.5.1
HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
YARN_HOME=${HADOOP_DEV_HOME}
HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_DEV_HOME/bin:$HADOOP_DEV_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin
export JAVA_HOME CLASSPATH PATH HADOOP_DEV_HOME HADOOP_MAPARED_HOME HADOOP_COMMON_HOME HADOOP_HDFS_HOME YARN_HOME HADOOP_CONF_DIR HDFS_CONF_DIR YARN_CONF_DIR

(1)修改hadoop-env.sh的JAVA_HOME

export JAVA_HOME=/usr/jdk1.7

(2)配置hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.dataname.data.dir</name>
<value>file:///home/hadoop/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>10.211.55.12:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property> 
         <name>dfs.permissions</name>
     <value>false</value>
</property>
</configuration>

 

 

(3)配置core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
    <property>
                <name>fs.default.name</name>
                <value>hdfs://10.211.55.12:9000</value>
        </property>
</configuration>

(4)配置mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>10.211.55.12:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>10.211.55.12:19888</value>
    </property>
<property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>10.211.55.12:50030</value>
    </property>
<property>
        <name>mapreduce.jobtracker.address</name>
        <value>10.211.55.12:9001</value>
    </property>
</configuration>

(5)配置yarn-env.sh

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.address</name>
<value>10.211.55.12:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.211.55.12:18030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>10.211.55.12:18088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.211.55.12:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>10.211.55.12:18141</value>
</property>
<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>
</configuration>

(6)復制mapred-queues.xml文件

cp mapred-queues.xml.template mapred-queues.xml

(7)設置master和slaver

master文件:cloud001

slaver文件:cloud002,cloud003,cloud004,cloud005,cloud006

(8)配置hosts

10.211.55.12 cloud001

10.211.55.15 cloud002

10.211.55.16 cloud003

10.211.55.19 cloud004

10.211.55.34 cloud005

10.211.55.22 cloud006

接着我們將配置好的資源打包分發到其他服務器。

6.分發資源

使用scp命令將配置好的資源分發的其他服務器上。

7.啟動集群

到這里所有的准備工作已完成了,我們可以啟動集群了,這里需要注意的是,hadoop2.x和hadoop1.x不一樣的地方是,啟動不着是start-all.sh,當然這個命令也是可以用的,但是這里不推薦使用,在hadoop2.x中,官方對啟動命令做了優化,推薦使用start-dfs.sh和start-yarn.sh。下面我給出一個完整的啟動過程:

格式化節點(首次啟動):

hadoop namenode –format

啟動所有節點:

start-dfs.sh

啟動資源管理:

start-yarn.sh

注:在hadoop2.x中,由於hadoop的設計變了,相對hadoop1.x在HDFS上添加了一層yarn來管理,所以啟動之后所有的資源交由yarn來管理。

添加代理(負載均衡):

 

 

yarn-daemons.sh start proxyserver

查看啟動集群的簡要概括:

hadoop dfsadmin –report

最后我們可以輸入JPS命令來查看:

[hadoop@cloud001 portal]$ jps
7844 ResourceManager
7501 NameNode
7687 SecondaryNameNode
15251 Jps

到這里我們的社區版hadoop2.x集群就搭建完成了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM