阿里云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时进行的截图

 

 

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