Hadoop集羣搭建

1. 規範(配置三臺虛擬機)java

虛擬機命名規範是 master , slave1 , slave2node

網絡模式,NAT轉換模式linux

2. 網絡配置web

全部的虛擬機設置爲ipv4 手動設置,將子網掩碼設置爲apache

若是出現了後綴名是swp 的文件,表示正在編輯的文件沒有正常退出,須要按照指定的目錄將這個臨時文件進行刪除便可網絡

3. 修改主機名稱 vi /etc/sysconfig/network , 改成master , slave1 , slave2 app

source /etc/sysconfig/network 讓剛纔的設置生效ssh

若是不行須要rebootwebapp

4. 設置hostide

在master主機的終端輸入命令:vi /etc/hosts 而後添加

將修改後的hosts 文件發送到其餘主機,進行遠程拷貝scp /etc/hosts root@192.168.175.131:/etc/

 5. 安裝SSH 

由於在每一個主機中須要生成ssh目錄,只要使用ssh登陸過相應的主機,就會生成ssh目錄在master節點經過ssh命令登陸到相應的子節點中 ssh 192.168.80.131

輸入exit進行退出,返回在master節點

每臺機器首先在終端中輸入命令:  cd ~/.ssh

每臺機器而後再終端中輸入命令生成公鑰和私鑰文件: ssh-keygen -t rsa -P ''

每臺機器而後在終端中輸入命令將公鑰文件拷貝到 authorized_keys 文件中:  cp id_rsa.pub authorized_keys

 在全部slaves節點上都執行命令,將每一個slave中的authorized_keys內容追加到master中的相應的文件內容後:

cat ~/.ssh/authorized_keys | ssh root@192.168.80.130 'cat >> ~/.ssh/authorized_keys'

使用遠程複製,將master中的 authorized_keys 拷貝到對應的 slave1 和 slave2

使用ssh命令,互相進行登陸,出現提示的時候輸入yes,之後每次登陸就不須要再去輸入密碼對於 

6. 安裝jdk

利用filezilla將jdk上傳到 /opt/SoftWare/java ,解壓tar -xvf jdk-8u141-linux-x64.tar.gz

配置jdk環境變量,打開/etc/profile配置文件,將下面配置拷貝進去

export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_141
export JRE_HOME=/opt/SoftWare/Java/jdk1.8.0_141/jre
export CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

從新加載/etc/profile配置文件  source /etc/profile

java -version  或者 javac  或者 java  是否都識別,識別就證實安裝成功。  

7. 安裝Hadoop

利用filezilla將hadoop-2.7.4.tar.gz上傳到 /opt/SoftWare/Hadoop, 進行解壓tar zxvf hadoop-2.7.3.tar.gz

(1)配置環境變量:

vi /etc/profile

在末尾添加:

export HADOOP_HOME=/opt/SoftWare/Hadoop/hadoop-2.7.4

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存後使新編輯的profile生效:

source /etc/profile

(2)配置hadoop

須要配置的文件的位置爲/hadoop-2.6.4/etc/hadoop,須要修改的有如下幾個

hadoop-env.sh

yarn-env.sh

core-site.xml

hdfs-site.xml

mapred-site.xml

yarn-site.xml

slaves

其中

hadoop-env.sh和yarn-env.sh裏面都要添加jdk的環境變量:

7.2.1 hadoop-env.sh

# The java implementation to use.

export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_141

# The jsvc implementation to use. Jsvc is required to run secure datanodes

# that bind to privileged ports to provide authentication of data transfer

# protocol.  Jsvc is not required if SASL is configured for authentication of

# data transfer protocol using non-privileged ports.

#export JSVC_HOME=${JSVC_HOME}

7.2.2   yarn-env.sh

# User for YARN daemons

export HADOOP_YARN_USER=${HADOOP_YARN_USER:-yarn}

# resolve links - $0 may be a softlink

export YARN_CONF_DIR="${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}" 

# some Java parameters

export JAVA_HOME=/opt/SoftWare/Java/jdk1.8.0_141

7.2.3  core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/temp</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.root.groups</name>
                <value>*</value>
        </property>
</configuration>

7.2.4  hdfs-site.xml

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/dfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.web.ugi</name>
                <value>supergroup</value>
        </property>
</configuration>

7.2.5  mapred-site.xml

<configuration>
        <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>
</configuration>

7.2.6   yarn-site.xml

<configuration>
        <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>
</configuration>

7.2.7   slaves

slave1
slave2
master

7.2.8  拷貝hadoop安裝文件到子節點 , 主節點上執行:

scp -r /opt/SoftWare/Hadoop/hadoop-2.7.4 root@slave1:/opt/SoftWare/Hadoop
scp -r /opt/SoftWare/Hadoop/hadoop-2.7.4 root@slave2:/opt/SoftWare/Hadoop

7.2.9   拷貝profile到子節點

scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/

在兩個子節點上分別使新的profile生效:

source /etc/profile

2.10  關閉防火牆 

CentOS6.x 關閉防火牆: service iptables stop

CentOS7.x 關閉防火牆 systemctl stop firewalld

CentOS6.x 查看防火牆當前狀態: service iptables status

CentOS7.x 查看防火牆當前狀態: systemctl status firewalld

7.2.10  格式化主節點的namenode

主節點上進入/hadoop-2.7.4目錄
而後執行:
./bin/hadoop namenode –format
新版本用下面的語句不用hadoop命令了
./bin/hdfs namenode –format

提示:successfully formatted表示格式化成功

7.2.11  啓動hadoop集羣

啓動集羣,輸入 ./sbin/start-all.sh 由於已經配置過了環境變量因此能夠直接輸入 start-all.sh 

能夠進入logs文件夾查看日誌,查看日誌的命令是 tail -100 日誌文件

7.2.12  關閉hadoop集羣

關閉集羣 stop-all.sh

8.  登陸

相關文章
相關標籤/搜索