Hadoop-3.x 伪分布式集群安装教程

Hadoop集群安装

本文安装配置步骤除第1步外,全程参考官方文档

机器配置如下(虚拟机)

角色 IP 内存 硬盘 硬盘
master 192.168.1.202 3g 20g centos
slave1 192.168.1.203 3g 20g centos
slave2 192.168.1.204 3g 20g centos

防火墙全关,selinux关闭

1. 环境配置

1.1 ssh免密登录配置

1.1.1 修改hosts文件

3台机器都如此操作
执行如下命令

sudo vim /etc/hosts

输入如下内容

192.168.1.202 master
192.168.1.203 slave1
192.168.1.204 slave2

保存并退出

1.1.2 生成公钥和私钥

3台机器都如此操作
执行如下命令

ssh-keygen -t rsa

如图,出现的内容都直接按回车
Hadoop-3.x 伪分布式集群安装教程_第1张图片

1.1.3 拷贝公钥至其他机器

3台机器都如此操作
使用ssh-copy-id 指令操作
以下指令,一行一行的执行。

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

中途需要输入对应主机的密码。

Hadoop-3.x 伪分布式集群安装教程_第2张图片
配置完成后,
用ssh 指令进行测试,如果不需要密码就登陆成功,说明配置成功

1.2 Java环境安装

按照官方要求,必须安装Java环境。
Hadoop-3.3及以上,只能使用JDK8-11Apache Hadoop 3.3及更高版本支持Java 8和Java 11(仅运行时)
从3.0到3.2的Apache Hadoop现在仅支持Java 8
从2.7.x到2.x的Apache Hadoop支持Java 7和8

安装方法

2. 安装Hadoop

2.1 下载并解压

这里安装的hadoop3.3,所以下载地址也是3.3版本的
下载地址
解压到 /data/hadoop-3.3.0

2.2 配置

2.2.1 etc/hadoop/hadoop-env.sh

#/path/to/java  指 Java的安装路径
#/path/to/hadoop 指 hadoop的安装路径
export JAVA_HOME=/path/to/java  
export HADOOP_HOME=/path/to/hadoop

2.2.2 etc/hadoop/core-site.xml

<!--配置hdfs文件系统的命名空间-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9820</value>
</property>
<!-- 配置操作hdfs的存冲大小 -->
<property>
  <name>io.file.buffer.size</name>
  <value>1024</value>
</property>
  <!-- 配置临时数据存储目录 -->
<property>
  <name>hadoop.tmp.dir</name>
  <value>/data/hadoop-3.3.0/tmp</value>
</property>

2.2.3 etc/hadoop/hdfs-site.xml

配置 NameNode

  <!--配置副本数-->
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  
  <!--NameNode永久存储名称空间和事务日志的本地文件系统上的路径。-->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/hadoop-3.3.0/hdfs/name</value>
  </property>
  
  <!--dfs的snn的web ui 地址-->
  <!--The secondary namenode http server address and port. -->
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1:9868</value>
  </property>

配置 DataNode

  <!--hdfs的数据存储位置,逗号分隔的DataNode本地文件系统上应存储其块的路径列表。-->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/hadoop-3.3.0/hdfs/data</value>
  </property>

2.2.4 etc/hadoop/yarn-site.xml

配置ResourceManager

<!--指定resourcemanager所启动的服务器主机名-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
<!--指定resourcemanager的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
<!--指定scheduler的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
<!--在资源管理器中分配给每个容器请求的最小内存限制,单位MB。 按实际配置进行合理划分-->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
<!--在资源管理器中分配给每个容器请求的最大内存限制。单位MB。 按实际配置进行合理划分-->
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>2048</value>
    </property>
<!--指定resourcemanager.webapp的ui监控地址-->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
<!--指定resourcemanager.admin的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
<!--指定resource-tracker的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>

配置NodeManager

<!--指定mapreduce的shuffle-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

2.2.5 etc/hadoop/mapred-site.xml

MapReduce配置

<!--指定mapreduce运行框架-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

<!--历史服务的通信地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
<!--历史服务的web ui地址-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>

3. 创建用户(每台机器都如此操作,且每个用户都需要ssh免密登录)

官网原文 it is recommended that HDFS and YARN run as separate users. In the majority of installations, HDFS processes execute as ‘hdfs’. YARN is typically using the ‘yarn’ account.

3.1 创建hdfs 用户

useradd hdfs

3.2 修改密码

passwd hdfs

3.3 加入超级管理员

因为centos默认没有sudo组,可以将你的用户指向wheel用户组, wheel用户组同样有sudo权限
所以在centos上可以使用如下命令添加用户组

usermod -a -G wheel hdfs

以同样的方式创建 yarn 用户。

使用hdfs 用户 在hadoop的安装目录中创建 hdfs/data 和 *hdfs/name 文件夹,用于保存hdfs的namenode的数据和datanode的数据
创建 tmp 文件夹,保存临时数据
创建 logs 文件夹,用于保存日志文件,且该文件夹需要 赋予所有的权限,以便yarn用户在启动yarn程序时可以访问该目录

详细如图:
Hadoop-3.x 伪分布式集群安装教程_第3张图片

4. 初始化并启动

4.1 切换到hdfs用户,初始化

su hdfs
cd /data/hadoop-3.0.0/bin
./hdfs namenode -format

初始化结果如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lafWY6HQ-1600619166482)(https://donkeyx.top/cloud/data/User/donkeyx/home/%E4%B8%8D%E8%A6%81%E5%A4%A7%E8%B0%88%E6%A2%A6%E6%83%B3/%E5%A4%A7%E6%95%B0%E6%8D%AE/hadoop/%E5%9B%BE%E7%89%87/2.png)]

4.2 启动HDFS

cd /data/hadoop-3.0.0/sbin
./start-dfs.sh

启动结果如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9vGDSU3r-1600619166484)(https://donkeyx.top/cloud/data/User/donkeyx/home/%E4%B8%8D%E8%A6%81%E5%A4%A7%E8%B0%88%E6%A2%A6%E6%83%B3/%E5%A4%A7%E6%95%B0%E6%8D%AE/hadoop/%E5%9B%BE%E7%89%87/3.png)]

4.2 切换到yarn用户,启动YARN

su yarn
cd /data/hadoop-3.0.0/sbin
./start-yarn.sh

启动结果如下图:
Hadoop-3.x 伪分布式集群安装教程_第4张图片

5.测试

5.1 访问 HDFS web界面

地址:http://master:9870
结果如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2CREqrms-1600619166486)(https://donkeyx.top/cloud/data/User/donkeyx/home/%E4%B8%8D%E8%A6%81%E5%A4%A7%E8%B0%88%E6%A2%A6%E6%83%B3/%E5%A4%A7%E6%95%B0%E6%8D%AE/hadoop/%E5%9B%BE%E7%89%87/5.png)]

可以看到有3个节点存活

5.2 访问 YARN 的任务管理web界面

地址:http://master:8088
结果如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UCovgYwt-1600619166487)(https://donkeyx.top/cloud/data/User/donkeyx/home/%E4%B8%8D%E8%A6%81%E5%A4%A7%E8%B0%88%E6%A2%A6%E6%83%B3/%E5%A4%A7%E6%95%B0%E6%8D%AE/hadoop/%E5%9B%BE%E7%89%87/6.png)]

安装完成

你可能感兴趣的:(大数据,大数据,hadoop,java,hadoop3,安装教程)