阿里雲ECS服務器配置Hadoop完全分佈式環境

目錄

項目分佈式架構

前期準備工作

1.選購阿里雲服務器

正式配置工作

(以下介紹的爲每個節點都必備的工作)

2.啓動遠程連接

3.關閉防火牆

4.創建操作用戶、修改權限

5.修改主機IP配置

 6.配置SSH

 7.上傳文件到服務器

8.安裝hadoop、Java

​(以下工作可以在一臺節點做好,打包發送

9.配置Hadoop

注意事項 


項目分佈式架構

Namenode Hadoop002
SecondaryNamenode Hadoop003
ResourceManager Hadoop002
DataNode 位於各個節點(1-8)
NodeManager 位於各個節點(1-8)

前期準備工作

1.選購阿里雲服務器

首先就是選購阿里雲服務器,我選擇的是Ubuntu 18.04系統

在選購時在阿里雲的每臺機器指定用戶名、主機名、密碼,一般用戶名相同,密碼相同。

主機名hostname爲xxx1-xxx8比較好記。

找個空白的txt記錄下所有節點的內網IP地址和外網ip地址

我選擇的是Hadoop 2.6.0 和JDK1.8 事先把linux安裝包下好

正式配置工作

(以下介紹的爲每個節點都必備的工作)

2.啓動遠程連接

3.關閉防火牆

sudo ufw disable //關閉防火牆

4.創建操作用戶、修改權限

useradd -m hadoop //創建Hadoop用戶用於操作

 passwd hadoop //爲創建的Hadoop用戶指定密碼

修改Hadoop的權限:將Hadoop加進sudoers列表

%hadoop ALL=(ALL:ALL) ALL

sudo vi /etc/passwd 修改Hadoop的顯示情況(原來僅顯示$ 沒有bash)最後將/sh變爲/bash

su hadoop切換到hadoop

5.修改主機IP配置

sudo vi /etc/hosts 建立主機名和ip地址的對應(在之後綴加) (填寫阿里雲私有ip地址)

這樣就使用主機名可以ping其他機器了

 6.配置SSH

su hadoop//切換回Hadoop 用戶

mkdir .ssh// hadoop目錄下新建.ssh 文件夾

 ssh-keygen -t rsa //創建公鑰 連按三次確認即可

 cd .ssh 進入.ssh文件夾

cat id_rsa.pub>>authorized_keys //將id_rsa.pub併入 authorized_keys之後

查看  authorized_keys 已經出現了hadoop006的公鑰

接下來 ssh localhost已經成功,輸入一次yes即可

給.ssh 設置權限

配置去其他節點的免密登錄  ssh將自己的密鑰發送給其他節點

ssh-copy-id 主機名

 7.上傳文件到服務器

上傳jdk、hadoop文件到阿里雲,注意使用端口號22和 公網ip,最後跟服務器的路徑 ,該路徑必須存在!

使用以下scp命令發送

scp -P 22 本路徑文件名 用戶名@IP地址:/路徑

中途需要你輸入Hadoop 的登錄密碼

發送成功!

8.安裝hadoop、Java

 現在需要解壓兩個文件 

tar -zxvf hadoop-2.6.0-x64.tar.gz 

 tar -zxvf jdk-8u11-linux-x64.tar.gz

解壓完成 出現兩個文件夾

創建軟鏈接 hadoop和jdk指向這兩個文件夾

ln -s hadoop-2.6.0 hadoop

ln -s jdk1.8.0_11 jdk

 記住Java的路徑 去配置環境變量bashrc

最後添加以下內容 第一行的jdk1.8.0_1最好改爲jdk

保存並退出後 source ~/.bashrc 

Java和hadoop就環境安裝好了 

以下工作可以在一臺節點做好,打包發送

9.配置Hadoop

hadoop-2.6.0 下面的etc/hadoop/ 修改hadoop-env.sh

在export JAVA_HOME 之後將自己的Java地址寫上即可

 再修改core-site.xml,<configuration></configuration>內加上以下內容 根據自己的主機和路徑改

<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop002:9000</value>
</property>

        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop/app/hadoop-2.6.0/tmp</value>
        </property>

再修改hdfs-site.xml,<configuration></configuration>內加上以下內容 根據自己的主機和路徑改

<property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hadoop003:50090</value>
        </property>
<property>
                    <name>dfs.namenode.http-address</name>
                   <value>hadoop002:50070</value>
           </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/hadoop/app/hadoop-2.6.0/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/hadoop/app/hadoop-2.6.0/tmp/dfs/data</value>
        </property>

再複製一份mapred.site.xml.template 命名爲mapred.site.xml 並配置它

cp mapred.site.xml.template  mapred.site.xml
vi mapred.site.xml

配置mapred.site.xml ,<configuration></configuration>內加上以下內容 根據自己的主機和路徑改

<property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>hadoop008:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>hadoop008:19888</value>
        </property>
<property>
  <name>mapred.child.java.opts</name>
  <value>-Xmx8000m</value>
</property>

 配置slaves ,將需要的slave機的hostname全添加後去,master機也可以作爲slave

hadoop001
hadoop002
hadoop003
hadoop004
hadoop005
hadoop006
hadoop007
hadoop008

配置yarn-site.xml,<configuration></configuration>內加上以下內容 根據自己的主機和路徑改

 <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop002</value>
    </property>
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
	</property>
	<property>
        <name>yarn.application.classpath</name>
        <value>hadoop classpath=/home/hadoop/app/hadoop-2.6.0/etc/hadoop:/home/hadoop/app/hadoop-2.6.0/share/hadoop/common/lib/*:/home/hadoop/app/hadoop-2.6.0/share/hadoop/common/*:/home/hadoop/app/hadoop-2.6.0/share/hadoop/hdfs:/home/hadoop/app/hadoop-2.6.0/share/hadoop/hdfs/lib/*:/home/hadoop/app/hadoop-2.6.0/share/hadoop/hdfs/*:/home/hadoop/app/hadoop-2.6.0/share/hadoop/mapreduce/lib/*:/home/hadoop/app/hadoop-2.6.0/share/hadoop/mapreduce/*:/home/hadoop/app/hadoop-2.6.0/share/hadoop/yarn:/home/hadoop/app/hadoop-2.6.0/share/hadoop/yarn/lib/*:/home/hadoop/app/hadoop-2.6.0/share/hadoop/yarn/*
	</value>
	</property>
<property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>16</value>
    <source>yarn-default.xml</source>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>8192</value>
    <source>yarn-default.xml</source>
</property>
<property>
    <name>yarn.scheduler.minimum-allocation-mb</name>
    <value>4096</value>
    <source>yarn-default.xml</source>
</property>

現在啓動sbin/start-all.sh,正常運行

注意事項 

注意jps後至少出現3+2+1=6個process纔可以 正常運行任務

namenode、datanode、seconarynamenode  //hdfs mapreduce的三個進程

nodemanager、resourcemanager // yarn的兩個任務管理進程

jps  //Java Virtual Machine Process Status Tool 可以列出本機所有java進程的pid

到這裏,完全分佈式集羣就配置完成了

要驗證的話可以在你自己的設備瀏覽器中輸入http://47.108.74.71:8088/ 查看任務、結點情況。

這個是在node爲3時運行任務時進行的截圖

或者在你自己的設備瀏覽器中http://47.108.74.71:50070/ 查看namenode的情況(包含全部節點、hdfs所佔空間情況)

我這個是在node爲2時進行的截圖

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章