Hadoop 3.1 + ubuntu18.04 完全分布式部署

作者: MasterXiao | 来源:发表于2019-04-03 20:34 被阅读30次

环境准备:
系统:ubuntu18.04 server
软件:hadoop3.1.2、JDK8

如果你还未配置过Hadoop,可以先尝试部署伪分布式。

部署完全分布式Hadoop,我们先来理清思路,做个规划:

主机名 用户名 NameNode DataNode IP
hadoop-master hadoop × 192.168.20.101
hadoop-slave1 slave × 192.168.20.102
hadoop-slave2 slave × 192.168.20.103

完全分布式Hadoop部署

配置完全分布式需要四个步骤,1.使集群中机器能互联互通,2.主机能免密登录从机,3.修改对应配置文件,设置主机和从机,4.验证。

准备工作:ip地址,主机名

ip地址ubuntu18.04使用netplan管理ip,通过修改配置文件修改三台机器ipvim /etc/netplan/*.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.20.102/24
      gateway4: 192.168.20.1
      nameservers:
          search: [mydomain, otherdomain]
          addresses: [192.168.20.1, 8.8.8.8]

主机名,分别修改三台机器主机名为:hadoop-master,hadoop-slave1,hadoop-slave2

在ubuntu18.04版本修改主机名需要先修改 /etc/cloud/cloud.conf文件,设置perserve_hostname属性为true

preserve_hostname: true

1. 分别设置三台机器的Ip映射

修改Hosts


vim /etc/hosts
添加
192.168.20.101  hadoop-master
192.168.20.102  hadoop-slave1
192.168.20.103  hadoop-slave2

配置SSH实现免密登录

vim /etc/ssh/sshd_config

修改三台机器ssh配置

RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

service sshd restart

重启ssh

仅从机使用slave普通用户操作

生成从机的公钥

ssh-keygen -t rsa -P ""
slave1上执行
scp ~/.ssh/id_rsa.pub master@192.168.20.101:~/.ssh/id_rsa.pub.s1
slave2上执行
scp ~/.ssh/id_rsa.pub master@192.168.20.101:~/.ssh/id_rsa.pub.s2

主机上hadoop用户执行,将主机的authorized文件拷贝至从机。

cd ~/.ssh
cat id_rsa.pub.s1 >> authorized_keys
cat id_rsa.pub.s2 >> authorized_keys
scp ~/.ssh/authorized_keys master@192.168.20.101:~/.ssh
scp ~/.ssh/authorized_keys master@192.168.20.102:~/.ssh

从机操作

chmod 600 ~/.ssh/authorized_keys

测试免密登录: ssh 用户名@机器名

3.配置hadoop修改配置文件

这里列出的两个文件是配置分布式环境需要注意的,其他必须要配置的文件,请查看伪分布式配置。

core-site.xml文件:

<configuration>  
 <property>  
    <name>fs.default.name</name>  
    <value>hdfs://hadoop-master:9000</value>  
    <description>HDFS的URI,文件系统://namenode标识:端口号</description>  
</property>  
<property>  
    <name>hadoop.tmp.dir</name>  
    <value>/usr/hadoop/tmp</value>  
    <description>namenode上本地的hadoop临时文件夹</description>  
</property>  
</configuration>

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>

修改workers(配置工作节点,3.X版本使用workers文件替代了之前的slaves和master文件)文件:

slave@hadoop-slave1
slave@hadoop-slave1

4.启动和验证集群

使用master用户和slave用户重新创建文件夹,并设置权限为普通用户。

sudo rm -r /usr/hadoop
sudo mkdir  /usr/hadoop
sudo chown -R master /usr/hadoop   #使用slave机器是  这里的master改为slave
mkdir /usr/hadoop/tmp 
mkdir /usr/hadoop/hdfs 
mkdir /usr/hadoop/hdfs/data 
mkdir /usr/hadoop/hdfs/name
  1. 格式化HDFS文件系统:
    在主节点上使用普通用户master进行操作。(备注:只需一次,下次启动不再需要格式化,只需 start-all.sh
    hadoop namenode -format
    如果报错文件夹无法创建,看看/usr/hadoop/tmp目录权限是不是不够
  2. 启动hadoop
    在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
    启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。

停止命令:
stop-all.sh

  1. jps命令查看进程

主机上输入jps显示:

12989 Jps
12599 NameNode
12776 SecondaryNameNode
12920 ResourceManager

从机上输入jps,显示:

3270 DataNode
3482 Jps
3382 NodeManager

相关文章

网友评论

    本文标题:Hadoop 3.1 + ubuntu18.04 完全分布式部署

    本文链接:https://www.haomeiwen.com/subject/iseobqtx.html