Hadoop3.3.4集群安装

介绍

Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。它最初由Apache软件基金会开发,并成为Apache项目的一部分。Hadoop的设计目标是能够在由廉价硬件组成的集群上进行可靠的、可扩展的分布式计算。

Hadoop的核心组件包括:

  • Hadoop Distributed File System(HDFS):HDFS是Hadoop的分布式文件系统,用于存储大规模数据集。它将数据划分成多个块,并在集群中的多个节点上进行分布式存储。HDFS提供了高容错性和可靠性,能够处理大规模数据的并发读写操作。
  • MapReduce: MapReduce是Hadoop的分布式计算框架,用于并行处理大规模数据集。MapReduce将计算任务分解为多个子任务,并在集群中的多个节点上并行执行。它包括两个主要阶段:Map阶段和Reduce阶段,用于数据的映射和归约操作。
  • YARN(Yet Another Resource Negotiator):YARN是Hadoop的资源管理器,负责集群资源的管理和任务调度。它允许多个应用程序共享集群资源,并根据需求进行动态分配。YARN提供了更灵活的资源管理机制,使得Hadoop可以同时运行多种计算框架,如MapReduce、Apache Spark、Apache Fink等。

Hadoop的优势在于它的可扩展性、容错性和成本效益。通过将数据划分和存储在多个节点上,Hadoop可以处理海量的数据,并提供了高吞吐量和并行计算能力。它还具有容错机制,能够自动处理节点故障和数据冗余。此外,Hadoop时候用廉价的商用硬件,相对于传统的大型数据中心解决方案,具有更低的成本。

安装前准备

环境

  • centos 7.x
  • java 1.8.0_201
  • Hadoop 3.3.4

规划

IP地址 主机名 hdfs yarn
172.16.77.202 hadoop-master-202 NameNode、SecondaryNameNode ResourceManager、JobHistoryServer
172.16.77.203 hadoop-node-203 DataNode NodeManager
172.16.77.204 hadoop-node-204 DataNode NodeManager
172.16.77.205 hadoop-node-205 DataNode NodeManager

关闭防火墙和SELINUX

1
2
3
4
5
systemctl stop firewalld && systemctl disable firewalld


sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
setenforce 0

创建hadoop

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#创建用户
adduser hadoop
#设置密码
echo "123456" | passwd hadoop --stdin

#将hadoop添加到sudoers文件中
chmod u+w /etc/sudoers

#编辑sudoers文件
vi /etc/sudoers
......   #加入以下内容,  如果想让hadoop用户使用sudo时不用输入密码,可以写入`hadoop ALL=(ALL) NOPASSWD: ALL`
hadoop ALL=(ALL)       ALL  
......


chmod u-w /etc/sudoers

设置各主机之间免密登录

添加hosts文件

1
2
3
4
5
6
cat << EOF >> /etc/hosts
172.16.77.202 hadoop-master-202
172.16.77.203 hadoop-node-203
172.16.77.204 hadoop-node-204
172.16.77.205 hadoop-node-205
EOF

设置主机间互信,在每台主机生成ssh公钥私钥,并将公钥拷贝到所有主机,包括自己

1
2
3
4
5
6
7
8
######注意: 使用hadoop用户#####
ssh-keygen -t rsa  #需要输入四个回车

#拷贝密钥 或者使用ssh-copy-id -i ~/.ssh/id_rsa.pub
ssh-copy-id 172.16.77.202
ssh-copy-id 172.16.77.203
ssh-copy-id 172.16.77.204
ssh-copy-id 172.16.77.205

安装JDK

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
##需要提前下载好jdk并上传至服务器
#创建存放目录并解压jdk
mkdir /usr/java
tar -zxvf jdk-8u201-linux-x64.tar.gz -C /usr/java/

#设置环境变量
vim /etc/profile
......  #写入如下内容
export JAVA_HOME=/usr/java/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin


##加载环境环境,测试是否安装成功
source /etc/profile

java -version #有以下输出,说明正常

java version "1.8.0_201"
......

注意:以上操作需要在所有机器操作

安装Hadoop

下载hadoop

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#创建安装目录,后续大数据组件的安装都在此目录下
mkdir /home/hadoop/software

#下载hadoop 3.3.4
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz --no-check-certificate

#解压至安装目录
tar -zxvf hadoop-3.3.4.tar.gz -C /home/hadoop/software/

#安装包下主要目录和文件:
bin: 包含了Hadoop个钟服务组件的命令脚本,如启动和停止NameNode、DataNode、ResourceManager等服务。
etc: 存放包含各种配置文件的目录,如果hdfs-site.xml、core-site.xml等。
lib: 包含类库文件,如hadoop-common、hadoop-hdfs、hadoop-mapreduce等组件的JAR文件。
libexec:包含了一些hadoop的内部脚本和可执行文件,用于支持hadoop的运行和管理。
include:包含了hadoop的头文件,用于开发hadoop相关的应用程序。
sbin:包含hadoop各种可执行文件的目录,如hdfs、yarn、mapred等命令脚本。
share:存放Hadoop共享文件的目录。


#将hadoop安装目录分配至hadoop用户
chown -R hadoop:hadoop /home/hadoop/software/

配置环境变量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
vim /etc/profile
......
export HADOOP_HOME=/home/hadoop/software/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin



##加载环境环境,测试是否安装成功
source /etc/profile

hadoop version
#出现以下内容,说明正常
Hadoop 3.3.4
......

配置hadoop自己的环境变量。上面所配置的是所有用户共有的,如果这里不创建自己的,下面配置hadoop时就需要在hadoop-env.sh中写入JAVA_HOME变量,不然启动hadoop时会提示没有JAVA_HOME

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
su - hadoop

vim ~/.bashrc
......
#java
export JAVA_HOME=/usr/java/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

#hadoop
export HADOOP_HOME=/home/hadoop/software/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

##加载环境环境
source ~/.bashrc

配置hadoop

修改core-site.xml

1
/home/hadoop/software/hadoop-3.3.4/etc/hadoop/core-site.xml

参考:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/core-default.xml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<configuration>
    <property>
      <!-- 设置为 HDFS 的默认文件系统 URI -->
      <name>fs.defaultFS</name>
      <value>hdfs://172.16.77.202:8020</value>
    </property>
    <property>
      <!-- 设置hadoop的临时目录 -->
      <name>hadoop.tmp.dir</name>
      <value>/home/hadoop/software/hadoop-3.3.4/data</value>
    </property>
    <property>
      <!-- 设置 Hadoop 代理用户可以使用的主机 -->
      <name>hadoop.proxyuser.hadoop.hosts</name>
      <value>*</value>
    </property>
    <property>
      <!-- 设置 Hadoop 代理用户可以使用的组 -->
      <name>hadoop.proxyuser.hadoop.groups</name>
      <value>*</value>
    </property>
    <property>
        <!-- 设置 root 代理用户可以使用的组 -->
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    <property>
        <!-- 指定文件在被删除后保留在HDFS垃圾回收站中的时间间隔(以分钟为单位),默认为一天(1440 分钟)  -->
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>
    <!-- Hue WebHDFS proxy user setting -->
    <property>
      <!-- 设置 hue 代理用户可以使用的主机 -->
      <name>hadoop.proxyuser.hue.hosts</name>
      <value>*</value>
    </property>
    <property>
      <!-- 设置 hue 代理用户可以使用的组 -->
      <name>hadoop.proxyuser.hue.groups</name>
      <value>*</value>
    </property>

    <property>
      <!-- 设置 httpfs 代理用户可以使用的主机 -->
      <name>hadoop.proxyuser.httpfs.hosts</name>
      <value>*</value>
    </property>
    <property>
      <!-- 设置 httpfs 代理用户可以使用的组 -->
      <name>hadoop.proxyuser.httpfs.groups</name>
      <value>*</value>
    </property>
    <property>
      <!-- 设置Hadoop文件系统数据流缓冲区大小 指定文件缓冲区大小为 128KB,即 131072 字节 -->
      <name>io.file.buffer.size</name>
      <value>131072</value>
    </property>
    <property>
        <!-- 开启 Hadoop RPC 日志记录 -->
        <name>hadoop.rpc.protection</name>
        <value>privacy</value>
    </property>
</configuration>

修改hdfs-site.xml

1
/home/hadoop/software/hadoop-3.3.4/etc/hadoop/hdfs-site.xml

参考:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<configuration>
    <property>
        <!-- HDFS 数据副本数,需要根据实际情况设置,以保障数据的可靠性 -->
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <!-- 启用 HDFS 的文件权限校验,默认即可 -->
        <name>dfs.permissions.enabled</name>
        <value>true</value>
    </property>
    <property>
        <!-- 指定 HDFS 数据块大小,需要根据实际情况设置以保障性能 -->
        <name>dfs.blocksize</name>
        <value>128m</value>
    </property>
    <property>
        <!-- 配置 NameNode 的运行目录,NameNode 会在此目录下存储命名空间和事务日志 -->
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/software/hadoop-3.3.4/hdfs/name</value>
    </property>
    <property>
        <!-- 配置 DataNode 的运行目录,每个 DataNode 会在此目录下存储数据块 -->
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/software/hadoop-3.3.4/hdfs/data</value>
    </property>
    <property>
        <!--  指定 Hadoop NameNode 的 web ui监听地址和端口。 -->
        <name>dfs.namenode.http-address</name>
        <value>172.16.77.202:9870</value>
        <description>
           The address and the base port where the dfs namenode web ui will listen on.
        </description>
    </property>
    <!-- 2nn Web端访问地址 -->
    <property>
        <!-- 配置 NameNode 的辅助 HTTP 端口,用于与 NameNode 交换数据 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>172.16.77.202:9868</value>
    </property>
    <property>
        <!--启用HDFS的WebHDFS功能-->
        <name>dfs.webhdfs.enable</name>
        <value>true</value>
    </property>
    <property>
        <!--禁用hdfs的权限检查,不设置会导致开发在本地连接hive创建表时提示没有权限-->
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
</configuration>

修改mapred-site.xml

1
/home/hadoop/software/hadoop-3.3.4/etc/hadoop/mapred-site.xml

参考:https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<configuration>
    <property>
        <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <!-- 用于指定MapReduce应用程序的类路径 -->
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
    <property>
        <!-- MR程序作业历史服务地址 -->
        <name>mapreduce.jobhistory.address</name>
        <value>172.16.77.202:10020</value>
    </property>
    <property>
        <!-- MR程序作业历史服务器web端地址 -->
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>172.16.77.202:19888</value>
    </property>
    <property>
        <!--设置MapReduce应用程序的环境变量-->
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <!--用于设置MapReduce中的Map任务的环境变量-->
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <!--用于设置MapReduce中的Reduce任务的环境变量-->
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <!-- 配置 MapReduce 任务最大重试次数 默认值4 -->
        <name>mapreduce.map.maxattempts</name>
        <value>4</value>
    </property>
    <property>
        <!-- 配置 MapReduce 任务执行超时时间,单位毫秒 默认值换算为10分钟-->
        <name>mapreduce.task.timeout</name>
        <value>600000</value>
    </property>
  <property>
      <!--指定每个映射任务要使用的内存量(以 MB 为单位)。-->
      <name>mapreduce.map.memory.mb</name>
      <value>4096</value> 
  </property>
  <!--hive gc后新增-->
  <property>
    <!--指定每个 reduce 任务要使用的内存量(以 MB 为单位)。-->
    <name>mapreduce.reduce.memory.mb</name>
    <value>4096</value> 
  </property>
  <property>
    <!--指定映射器 Java 虚拟机的最大堆大小。-->
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx3276m</value> 
  </property>
  <property>
    <!--指定Reducer Java虚拟机的最大堆大小。-->
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx3276m</value> 
  </property> 
</configuration>

修改yarn-site.xml

1
/home/hadoop/software/hadoop-3.3.4/etc/hadoop/yarn-site.xml

参考:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
<configuration>
    <property>
        <!--
       是 YARN NodeManager 的配置项之一,用于指定一些额外的辅助服务。在 YARN 中,一个应用程序可能需要运行一些额外的服务,
       例如 distributed shell 应用通常需要运行 shell 环境中的某些服务。 这里只指定了一个服务 mapreduce_shuffle。
       -->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
      <property>
          <!--用于配置YARN资源管理器(ResourceManager)的主机名-->
        <name>yarn.resourcemanager.hostname</name>
        <value>172.16.77.202</value>
    </property>
    <property>
        <!-- 是否启用日志聚合功能-->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <!--用于指定YARN节点管理器在执行日志聚合时滚动监视文件的时间间隔-->
        <name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
        <value>86400</value>
    </property>
    <property>
        <!--用于指定日志聚合的保留时间。以秒为单位,-->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>60480</value>
    </property>
    <property>
        <!-- 开启YARN的日志聚合并存储在HDFS中 -->
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/tmp/logs</value>
    </property>
    <property>
        <!-- 配置 NodeManager 的日志目录和地址 -->
        <name>yarn.nodemanager.log-dirs</name>
        <value>/home/hadoop/software/hadoop-3.3.4/logs</value>
    </property> 
    <property>
        <!-- 指定 YARN 应用程序日志的服务器 URL,也就是 JobHistoryServer -->
        <name>yarn.log.server.url</name>
        <value>http://0.0.0.0:19888/jobhistory/logs</value>
    </property>

    <property>
        <!--是否对容器实施物理内存限制。生产环境建议开启-->
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <!-- 是否对容器实施虚拟内存限制。 生产环境建议开启-->
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
	<property>
        <!-- 可以分配给容器的物理内存量(MB) -->
        <name>yarn.nodemanager.resource.memory-mb</name>
	    <value>204800</value>
	</property>
	<property>
        <!--  每个容器请求在 RM 的内存最小分配(以 MB 为单位) -->
    	<name>yarn.scheduler.minimum-allocation-mb</name>
    	<value>2048</value>
 	</property>
	<property>
        <!--  每个容器请求在 RM 的内存最大分配(以 MB 为单位) -->
    	<name>yarn.scheduler.maximum-allocation-mb</name>
    	<value>8192</value>
	</property>

	<property>
        <!-- 设置 NodeManager 允许的 CPU 资源量(以虚拟 CPU 个数为单位),对任务执行的 CPU 开销进行统一的限制。 -->
    	<name>yarn.nodemanager.resource.cpu-vcores</name>
   		<value>45</value>
	</property>
	<property>
        <!--  YARN 调度器最小的 CPU 资源分配单元(以虚拟 CPU 个数为单位),默认为1。 -->
        <name>yarn.scheduler.minimum-allocation-vcores</name>
        <value>1</value>
    </property>
	<property>
        <!--  YARN 调度器最大的 CPU 资源分配单元(以虚拟 CPU 个数为单位) -->
        <!-- 高于此的请求将抛出InvalidResourceRequestException。 -->
        <name>yarn.scheduler.maximum-allocation-vcores</name>
        <value>8</value>
    </property>
    
    <property>
        <!-- 配置 YARN 的应用程序调度器 -->
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    </property>
	<property>
        <!--用于设置yarn调度器的公平调度器(FairScheduler)中的抢占策略,默认是false不开启-->
		<name>yarn.scheduler.fair.preemption</name>
		<value>true</value>
	</property>
	<property>
        <!--用于设置YARN调度器的公平调度器(Fair Scheduler)中的抢占策略的集群利用率阈值。
        该属性的值被设置为0.8,表示当集群的利用率达到80%时触发抢占策略。-->
		<name>yarn.scheduler.fair.preemption.cluster-utilization-threshold</name>
		<value>0.8</value>
    </property>
    <property>
        <!-- 开启YARN的节点标签 -->
        <name>yarn.node-labels.enabled</name>
        <value>true</value>
    </property>
</configuration>

修改workers

1
2
3
4
5
6
/home/hadoop/software/hadoop-3.3.4/etc/hadoop/workers
#写入DataNode节点和NodeManager节点对应服务器主机名或ip地址
####注意:如果你不想在NameNode节点上运行DataNode 就不要添加NameNode的地址
172.16.77.203
172.16.77.204
172.16.77.205

分发目录

将hadoop安装目录拷贝到各个节点上

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#切换到hadoop用户
su - hadoop

#查看路径
pwd
/home/hadoop

#传输hadoop
scp -r software/ hadoop@172.16.77.203:/home/hadoop/
scp -r software/ hadoop@172.16.77.204:/home/hadoop/
scp -r software/ hadoop@172.16.77.205:/home/hadoop/

#传输bashrc
scp ~/.bashrc hadoop@172.16.77.203:~/.bashrc
scp ~/.bashrc hadoop@172.16.77.204:~/.bashrc
scp ~/.bashrc hadoop@172.16.77.205:~/.bashrc

注意:在各个节点上要添加hadoop的环境变量

启动hadoop

格式化NameNode

注意:格式化只在NameNode节点执行,只需要最开始执行一次即可

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
hdfs namenode -format
......
#出现以下类似内容,说明成功了
2023-08-22 21:59:07,790 INFO namenode.FSImage: Allocated new BlockPoolId: BP-1786430205-172.16.77.202-1692712747782
2023-08-22 21:59:07,803 INFO common.Storage: Storage directory /home/hadoop/software/hadoop-3.3.4/hdfs/name has been successfully formatted.
2023-08-22 21:59:07,833 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/software/hadoop-3.3.4/hdfs/name/current/fsimage.ckpt_0000000000000000000 using no compression
2023-08-22 21:59:07,963 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/software/hadoop-3.3.4/hdfs/name/current/fsimage.ckpt_0000000000000000000 of size 401 bytes saved in 0 seconds .
2023-08-22 21:59:07,976 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2023-08-22 21:59:08,020 INFO namenode.FSNamesystem: Stopping services started for active state
2023-08-22 21:59:08,020 INFO namenode.FSNamesystem: Stopping services started for standby state
2023-08-22 21:59:08,023 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
2023-08-22 21:59:08,024 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop-master-202/172.16.77.202
************************************************************/

启动/关闭hdfs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
####一次性启动hdfs集群
####会在202上启动NameNode SecondaryNameNode
####会在203-205上启动DataNode
start-dfs.sh


###单个组件启动 最好按下面顺序来启动
#在每个服务器上去启动对应的组件
#--------202-----------------
#启动NameNode web端口为9870
hdfs --daemon start namenode   
#启动SecondaryNameNode  web端口为9868
hdfs --daemon start secondarynamenode


#--------203-205----------------
#启动DataNode  web端口为9864
hdfs --daemon start datanode


#可以使用jps查看状态
jps


#######-------------对应关闭-----------
####一次性关闭hdfs集群
####会在202上关闭NameNode SecondaryNameNode
####会在203-205上关闭DataNode
stop-dfs.sh

#在每个服务器上去关闭对应的组件
#--------202-----------------
#关闭NameNode
hdfs --daemon start namenode   
#关闭SecondaryNameNode
hdfs --daemon start secondarynamenode


#--------203-205----------------
#关闭DataNode
hdfs --daemon start datanode

启动/关闭yarn

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
####一次性启动yarn集群
####会在202上启动ResourceManager
####会在203-205上启动NodeManager
start-yarn.sh

#需要单独启动JobHistoryServer 这里放在202中
mapred --daemon start historyserver


###单个组件启动 最好按下面顺序来启动
#在每个服务器上去启动对应的组件
#--------202-----------------
#启动ResourceManager  web端口为8088
yarn --daemon start resourcemanager  
#启动JobHistoryServer  web端口为19888
mapred --daemon start historyserver


#--------203-205----------------
#启动NodeManager   web端口为8042
yarn --daemon start nodemanager


#可以使用jps查看状态
jps



#######-------------对应关闭-----------
####一次性关闭yarn集群
####会在202上关闭ResourceManager
####会在203-205上关闭NodeManager
stop-yarn.sh

#关闭JobHistoryServer 
mapred --daemon stop historyserver

#在每个服务器上去关闭对应的组件
#--------202-----------------
#启动ResourceManager  web端口为8088
yarn --daemon stop resourcemanager   
#关闭JobHistoryServer 
mapred --daemon stop historyserver


#--------203-205----------------
#启动NodeManager   web端口为8042
yarn --daemon stop nodemanager
Buy me a coffee
支付宝
微信
0%