阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.0完全分布式集群搭建方法(CentOS7+Hadoop2.7.7)

230次阅读
没有评论

共计 8139 个字符,预计需要花费 21 分钟才能阅读完成。

本文详细介绍搭建 4 个节点的完全分布式 Hadoop 集群的方法,Linux 系统版本是 CentOS 7,Hadoop 版本是 2.7.7,JDK 版本是 1.8。

一、准备环境

1. 在 VMware workstations 上创建 4 个 Linux 虚拟机,并配置其静态 IP。

如何在 VMware workstation 上创建 Linux 虚拟机

准备使用 Linux 虚拟机部署 Hadoop 集群,故在 win10 系统上安装了 VMware workstation,具体安装非常简单,在此不做阐述。本文主要介绍如何在 VMware workstation 上创建 Linux 虚拟机。

步骤:

1. 如下图,在 VMware workstation 中,点击【创建新的虚拟机】。

Hadoop2.0 完全分布式集群搭建方法(CentOS7+Hadoop2.7.7)

2. Linux 虚拟机的具体配置如下:

Hadoop2.0 完全分布式集群搭建方法(CentOS7+Hadoop2.7.7)

有关【克隆 Linux 虚拟机及配置网络】,请参考这里。

2. 配置 DNS(每个节点)

编辑配置文件,添加主节点和从节点的映射关系。

#vim /etc/hosts
192.168.44.3 hadoop01
192.168.44.4 hadoop02
192.168.44.5 hadoop03
192.168.44.6 hadoop04

 3. 关闭防火墙(每个节点)

# 关闭服务
[root@hadoop01 opt]# systemctl stop firewalld
# 关闭开机自启动
[root@hadoop01 opt]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.

4. 配置免密码登录
有关【配置免密码登录方法】,请参考这里 https://www.linuxidc.com/Linux/2019-02/156882.htm。

5. 配置 Java 环境(每个节点)

本文详细介绍 Linux 系统下配置 Java 环境的方法,使用 JDK1.8 版本。

1. 从 Oracle 官网上下载 Java8 版本。

下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2. 上传 Java 包到 Linux 系统。

使用 rz 命令将 Java tar 包上传到 Linux 系统。(有关 rz 命令用法,请参考这里)

3. 解压 Java 安装包

[root@hadoop01 opt]# ls
jdk-8u101-linux-x64.tar.gz
[root@hadoop01 opt]# tar -zxvf jdk-8u101-linux-x64.tar.gz

jdk1.8.0_101/man/ja_JP.UTF-8/man1/javapackager.1
jdk1.8.0_101/man/ja_JP.UTF-8/man1/jstat.1
[root@hadoop01 opt]# ls
jdk1.8.0_101  jdk-8u101-linux-x64.tar.gz

4. 配置 Java 环境变量

#vim /etc/profile
# Java
export JAVA_HOME=/opt/jdk1.8.0_101  # 该路径为 java 安装路径
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

# :wq 保存后,使配置文件生效
#source /etc/profile

5. 验证 Java 安装状态

[root@hadoop01 jdk1.8.0_101]# java -version
java version “1.8.0_101”
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

二、搭建 Hadoop 完全分布式集群

在各个节点上安装与配置 Hadoop 的过程都基本相同,因此可以在每个节点上安装好 Hadoop 后,在主节点 master 上进行统一配置,然后通过 scp 命令将修改的配置文件拷贝到各个从节点上即可。

1. 下载 Hadoop 安装包,解压,配置 Hadoop 环境变量

有关【Hadoop 安装包下载方法】。

Hadoop3.0 版本的诞生,引入了很多新功能,为了验证 Hadoop2.0 与 3.0 版本的性能,需下载 Hadoop 的不同版本。故下文演示如何下载 Hadoop 安装包的方法。

1. 进入 Apache Hadoop 官网:http://hadoop.apache.org/

2. 点击左侧【Download】按钮,进入如下下载页面:

Hadoop2.0 完全分布式集群搭建方法(CentOS7+Hadoop2.7.7)

可点击当前界面上显示的 Binary 安装包进入下载,亦可点击【mirror site】进入镜像页面,选择要安装的版本进行下载。

本文下载的 Hadoop 版本是 2.7.7,指定一个目录(比如:/opt),使用 rz 命令上传 Hadoop 安装包到 Linux 系统,解压到指定目录,配置 Hadoop 环境变量,并使其生效。实现命令如下:

# 配置 Hadoop 环境变量
[root@hadoop02 opt]# vim /etc/profile
#Hadoop
export HADOOP_HOME=/opt/hadoop-2.7.7 # 该目录为解压安装目录
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

# 保存后,使 profile 生效
[root@hadoop02 opt]# source /etc/profile

2. 配置 Hadoop 环境脚本文件中的 JAVA_HOME 参数

# 进入 Had 安装目录下的 etc/hadoop 目录
[root@hadoop01 ~]#cd /opt/hadoop-2.7.7/etc/hadoop

# 分别在 hadoop-env.sh、mapred-env.sh、yarn-env.sh 文件中添加或修改如下参数:

[root@hadoop01 hadoop]# vim hadoop-env.sh
[root@hadoop01 hadoop]# vim mapred-env.sh
[root@hadoop01 hadoop]# vim yarn-env.sh
export JAVA_HOME=”/opt/jdk1.8.0_101″  # 路径为 jdk 安装路径

 3. 修改 Hadoop 配置文件

Hadoop 安装目录下的 etc/hadoop 目录中,需修改 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves(3.0 之后为 workers)文件,根据实际情况修改配置信息。

(1)core-site.xml

<configuration>
<property>
    <!– 配置 hdfs 地址 –>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop01:9000</value>
</property>
<property>
    <!– 保存临时文件目录,需先在 /opt/hadoop-2.7.7 下创建 tmp 目录 –>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop-2.7.7/tmp</value>
</property>

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
</configuration>

(2)hdfs-site.xml

<configuration>
    <property>
        <!– 主节点地址 –>
        <name>dfs.namenode.http-address</name>
        <value>hadoop01:50070</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/hadoop/dfs/data</value>
    </property>
    <property>
        <!– 备份份数 –>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <!– 第二节点地址 –>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop02:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
        <description> 配置为 false 后,可以允许不要检查权限就生成 dfs 上的文件,需防止误删操作 </description>
    </property>
</configuration>

(3)mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop01:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop01:19888</value>
    </property>
</configuration>

(4)yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop01:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoop01:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoop01:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoop01:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>hadoop01:8088</value>
    </property>
   
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <!– NodeManager 中的配置,这里配置过小可能导致 nodemanager 启动不起来
                          大小应该大于 spark 中 executor-memory + driver 的内存 –>
        <value>6144</value>
    </property>
    <property>
        <!– RsourceManager 中配置
                          大小应该大于 spark 中 executor-memory + driver 的内存 –>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>61440</value>
    </property>
    <property>
        <!– 使用核数 –>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>2</value>
    </property>

    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description> 忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不易出问题。</description>
    </property>
    <property>
      <!– 调度策略,设置为公平调度器 –>
      <name>yarn.resourcemanager.scheduler.class</name>
      <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    </property>
</configuration>

(5)slaves 文件

# 增加从节点地址(若配置了 hosts,可直接使用主机名,亦可用 IP 地址)
[root@hadoop01 hadoop]# vim slaves
hadoop02
hadoop03
hadoop04

 4. 将配置好的文件夹拷贝到其他从节点

[root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop02:/opt/
[root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop03:/opt/
[root@hadoop01 hadoop-2.7.7]# scp -r /opt/hadoop-2.7.7 root@hadoop04:/opt/

5. 初始化 & 启动

# 格式化
[root@hadoop01 hadoop-2.7.7]# bin/hdfs namenode -format

# 启动
[root@hadoop01 hadoop-2.7.7]# sbin/start-dfs.sh
[root@hadoop01 hadoop-2.7.7]# sbin/start-yarn.sh

6. 验证 Hadoop 启动成功

# 主节点
[root@hadoop01 hadoop-2.7.7]# jps
5895 Jps
5624 ResourceManager
5356 NameNode

# 从节点
[root@hadoop02 hadoop]# jps
5152 SecondaryNameNode
5085 DataNode
5245 NodeManager
5357 Jps

[root@hadoop03 opt]# jps
5080 DataNode
5178 NodeManager
5278 Jps

[root@hadoop04 opt]# jps
5090 NodeManager
5190 Jps
4991 DataNode

7. Web 端口访问

注:先开放端口或直接关闭防火墙

# 查看防火墙状态
firewall-cmd –state
# 临时关闭
systemctl stop firewalld
# 禁止开机启动
systemctl disable firewalld

在浏览器输入:http://hadoop01:8088 打开 Hadoop Web 页面。

在浏览器输入:http://hadoop01:50070 打开 Hadoop Web 页面。

Hadoop 基本操作命令

#hadoop dfsadmin -report 查看 hdfs 集群的存储空间使用情况。
#hadoop fs -du -h 目录  查看当前目录下各个文件占得内存
#hadoop fs –rmr /tmp/aaa 删除一个目录
#hadoop fs –put 文件 hdfs 文件目录上传一个文件
#hadoop fs –get  hdfs 文件下载地址目录下载一个文件
#hadoop fs –moveFromLocal 文件 hdfs 文件目录上传一个文件同时删除本地文件
#haddop fs –text hdfs 目录查看文件内容
#haddopfs –cat hdfs 目录查看文件内容
#hadoop job –list 获取任务列表
#hadoop job –kill job-id 杀死一个 job
#hadoop-daemon.sh start datanoe 加入一个新的节点
#hadoop mradmin/dfsadmin –refreshnones 删除一个节点
#yarn application -kill application_任务 id:停止在 yarn 上运行的 spark 任务,在 resourcemanager 上执行
#hadoop fs -ls .Trash/Current(显示 Current 目录)
#hadoop fs -rm -r .Trash/Current(删除 Current 目录及其子目录)

在 Linux Ubuntu 18.04/18.10 上安装 Hadoop 图文详解  https://www.linuxidc.com/Linux/2018-11/155282.htm

CentOS 7 下搭建 Hadoop 2.9 分布式集群  https://www.linuxidc.com/Linux/2018-11/155328.htm

更多 Hadoop 相关信息见Hadoop 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计8139字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中