hadoop完全分布式搭建3台主机(详细)

linux 4个月前 散逸
浏览:875 5

主机分配以及地址要求:

角色 主机名 IP地址
Namenode master 192.168.222.201
Datanode slave1 192.168.222.202
datanode slave2 192.168.222.203

要求:

  • 正确完成搭建
  • 将数据文件email_log.txt 传至HDFS系统的“/users”中
  • 计算文件email_log.txt 文件中每个数据出现的次数,将最终结果文件重命名为“学号+姓名”

1.关闭防火墙 selinux (都要执行)

1.1关闭防火墙

执行关闭命令: systemctl stop firewalld.service
执行开机禁用防火墙自启命令 : systemctl disable firewalld.service

1.2 关闭selinux

1.2.1 临时关闭

setenforce 0 :用于关闭selinux防火墙,但重启后失效。

setenforce 0
1.2.2永久关闭

修改selinux的配置文件,重启后生效。

打开 selinux 配置文件

vi /etc/selinux/config

修改 selinux 配置文件

将SELINUX=enforcing改为SELINUX=disabled,保存后退出

2. 添加IP与主机名的映射关系 ( 都要修改 )

2.1. 修改主机名(都要修改)

设定主机名与网卡启动、网关配置

vi /etc/sysconfig/network
[root@host1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master

需要注意的是Hadoop的集群中的主机名不能有_ (下划线)。如果存在_会导致Hadoop集群无法找到这群主机,从而无法启动!

经过上面的修改,主机名称不会马上改变,必须重启才能生效。

[root@master hadoop]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain
192.168.222.201 master
192.168.222.202 slave1
192.168.222.203 slave2

改完主节点之后,可以将hosts文件直接传到其他两个节点。

scp /etc/hosts 192.168.222.202:/etc/hosts
scp /etc/hosts 192.168.222.203:/etc/hosts

3.设置免密登录

让Master能够通过SSH无密码登录各个Slave节点

如果修改过主机名,需要重新生成的新的公钥。

3.1方法一

rm -r ~/.ssh
ssh-keygen -t rsa
ssh-copy-id localhost
ssh-copy-id slave1
ssh-copy-id slave2

3.2方法二

在master上执行如下命令:

 cd ~/.ssh       # 如果没有该目录,先执行一次ssh localhost
 rm ./id_rsa*      # 删除之前生成的公匙(如果已经存在)
 ssh-keygen -t rsa    # 执行该命令后,遇到提示信息,一直按回车就可以
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

接着将master中的id_rsa.pub文件复制到各个Slave节点中

 scp ~/.ssh/id_rsa.pub slave01:/root
 scp ~/.ssh/id_rsa.pub slave02:/root

在各个slave节点中执行如下命令:

 mkdir ~/.ssh    # 如果不存在该文件夹需先创建
 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
 rm ~/id_rsa.pub  # 用完以后就可以删掉

在master中验证是否可以无密码登录,各个Slave节点。

ssh Slave01 #如果成功登录,则配置完成
ssh Slave02 #如果成功登录,则配置完成

4.安装java环境 + 解压hadoop压缩包

上传gz包,解压

mkdir -p /simple/soft
cd /simple
tar -zxvf /simple/soft/jdk-7u79-linux-x64.tar.gz
tar -zxvf /simple/soft/hadoop-2.4.1.tar.gz

5.修改配置文件

cd /simple/hadoop-2.4.1/etc/hadoop 

5.1 slaves 文件

将文件中原来的 localhost 删除,添加内容:

vi slaves
slave1
slave2

5.2 core-site.xml 文件

内容修改为:

<configuration>
    <!-- 指定HADOOP所使用的文件系统schema(URI)-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>

     <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/simple/hadoop-2.4.1/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
</configuration>

5.3 hdfs-site.xml文件

Hadoop的分布式文件系统HDFS一般采用冗余存储,一份文件通常保存3份副本,所以dfs.replication的值还是设置为3。 具体内容如下:

<configuration>
    <property>
        <!-- 指定SecondaryNamenode所在地址 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/simple/hadoop-2.4.1/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/simple/hadoop-2.4.1/tmp/dfs/data</value>
    </property>
</configuration>

5.4 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>

5.5 yarn-site.xml文件

内容如下:

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

5.6 hadoop-env.sh 文件

修改如下内容:

export JAVA_HOME=/simple/jdk1.7.0_79

# 可以不用
export HADOOP_HOME=/simple/hadoop-2.4.1/

版权声明:散逸 发表于 2020-06-19 14:58:18。
转载请注明:hadoop完全分布式搭建3台主机(详细) | 散逸-博客-导航

5 条评论

  • 匿名
    匿名 Vip2

    真的太实用了,感谢博主的无私

    回复
  • 匿名
    匿名 Vip1

    感谢一表人才、仪表非凡、威风凛凛、眉清目秀、相貌堂堂、风度翩翩、衣冠楚楚、城北徐公、明眸皓齿、掷果潘安、浓眉大眼、玉质金相、神采奕奕、英俊潇洒、风流倜傥、风度翩翩、玉树临风、气度不凡、气宇不凡、温文尔雅、俊美无涛 英俊潇洒、面如冠玉、一表人才、仪表不凡、仪表堂堂 、丰神俊秀、文质彬彬的博主,写出了如此详细的步骤,实在是受益终身,感谢博主的慷慨和无私奉献

    回复
    • admin
      admin

      o( ̄▽ ̄)d.

      回复
  • 韭菜
    韭菜 Vip1

    有收获,感谢博主

    回复
    • admin
      admin

      nice

      回复