Hadoop版本演变、分布式集群搭建

Hadoop版本演变历史

Hadoop发行版非常的多,有华为发行版、Intel发行版、Cloudera Hadoop(CDH)、Hortonworks Hadoop(HDP),这些发行版都是基于Apache Hadoop衍生出来的。
目前Hadoop经历了三个大的版本。
在这里插入图片描述
hadoop1.x:HDFS+MapReduce
hadoop2.x:HDFS+YARN+MapReduce
hadoop3.x:HDFS+YARN+MapReduce

在这里插入图片描述
在Hadoop1.x中,分布式计算和资源管理都是MapReduce负责的,从Hadoop2.x开始把资源管理单独拆分出来了,YARN是一个公共的资源管理平台,在它上面不仅仅可以跑MapReduce程序,还可以跑很多其他的程序,例如:Spark、Flink等计算框架都是支持在YARN上面执行的,并且在实际工作中也都是在YARN上面执行,只要程序满足YARN的规则即可。

Hadoop3.x的架构并没有发生什么变化,但是它在其他细节方面做了很多优化,常见的包括:

  • 最低Java版本要求从Java7变为Java8;
  • 在Hadoop 3中,HDFS支持纠删码,纠删码是一种比副本存储更节省存储空间的数据持久化存储方法,使用这种方法,相同容错的情况下可以比之前节省一半的存储空间
    HDFS Erasure Coding
  • Hadoop 2中的HDFS最多支持两个NameNode,一主一备,而Hadoop 3中的HDFS支持多个NameNode,一主多备;
    HDFS High Availability Using
  • MapReduce任务级本地优化,MapReduce添加了映射输出收集器的本地化实现的支持。对于密集型的洗牌操作(shuffle-intensive)jobs,可以带来30%的性能提升,
    Task level native optimization
  • 修改了多重服务的默认端口,Hadoop2中一些服务的端口和Hadoop3中是不一样的

Hadoop 3和2之间的主要区别在于新版本提供了更好的优化和可用性
参考官网

Hadoop三大核心组件

Hadoop主要包含三大组件:HDFS+MapReduce+YARN

  • HDFS负责海量数据的分布式存储
  • MapReduce是一个计算模型,负责海量数据的分布式计算
  • YARN主要负责集群资源的管理和调度
    在这里插入图片描述

分布式集群安装

左边这一个是主节点,右边的两个是从节点,hadoop集群是支持主从架构的。
在这里插入图片描述
一主两从的hadoop集群,环境准备:三个节点
bigdata01 192.168.182.100
bigdata02 192.168.182.101
bigdata03 192.168.182.102

下载安装包

hadoop官网下载地址
版本hadoop3.2.0
在这里插入图片描述

配置基础环境

设置静态ip、hostname、host、firewalld、ssh免密码登录、安装JDK与环境变量、集群节点之间时间同步

设置静态ip

# 主节点 IPADDR=192.168.182.100
# 从节点 IPADDR=192.168.182.101、IPADDR=192.168.182.102
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="9a0df9ec-a85f-40bd-9362-ebe134b7a100"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.182.100 
GATEWAY=192.168.182.2
DNS1=192.168.182.2

# 重启网络服务
[root@bigdata01 ~]# service network restart
Restarting network (via systemctl):                        [  OK  ]
[root@bigdata01 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:9c:86:11 brd ff:ff:ff:ff:ff:ff
    inet 192.168.182.100/24 brd 192.168.182.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::c8a8:4edb:db7b:af53/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever



设置临时主机名和永久主机名hostname

# 临时主机名
# 主节点 bigdata01
# 从节点 bigdata02、bigdata03
[root@bigdata01 ~]# hostname bigdata01
[root@bigdata01 ~]# vi /etc/hostname 
bigdata01

配置永久主机名与静态ip映射,在/etc/hosts文件中配置ip和主机名(hostname)的映射关系,把下面内容追加到/etc/hosts中,不能删除/etc/hosts文件中的已有内容!

# 主节点 bigdata01
# 从节点 bigdata02、bigdata03
[root@bigdata01 ~]# vi /etc/hosts 
192.168.182.100 bigdata01

配置/etc/hosts

因为需要在主节点远程连接两个从节点,所以需要让主节点能够识别从节点的主机名,使用主机名远程访问,默认情况下只能使用ip远程访问,想要使用主机名远程访问的话需要在节点的/etc/hosts文件中配置对应机器的ip和主机名信息。

所以在这里我们就需要在bigdata01的/etc/hosts文件中配置下面信息,最好把当前节点信息也配置到里面,这样这个文件中的内容就通用了,可以直接拷贝到另外两个从节点

# 在bigdata01的/etc/hosts文件中配置ip与hostname映射
[root@bigdata01 ~]# vi /etc/hosts
192.168.182.100 bigdata01
192.168.182.101 bigdata02
192.168.182.102 bigdata03

# 在bigdata02的/etc/hosts文件中配置ip与hostname映射
[root@bigdata02 ~]# vi /etc/hosts
192.168.182.100 bigdata01
192.168.182.101 bigdata02
192.168.182.102 bigdata03

# 在bigdata03的/etc/hosts文件中配置ip与hostname映射
[root@bigdata03 ~]# vi /etc/hosts
192.168.182.100 bigdata01
192.168.182.101 bigdata02
192.168.182.102 bigdata03

关闭防火墙

# 临时关闭防火墙
[root@bigdata01 ~]# systemctl stop firewalld
# 永久关闭防火墙
[root@bigdata01 ~]# systemctl disable firewalld

[root@bigdata02 ~]# systemctl disable firewalld

[root@bigdata03 ~]# systemctl disable firewalld


ssh免密码登录

ssh 是secure shell,安全的shell,通过ssh可以远程登录到远程linux机器。
不管是几台机器的集群,启动集群中程序的步骤都是一样的,都是通过ssh远程连接去操作,就算是一台机器,它也会使用ssh自己连自己。
在启动集群的时候只需要在一台机器上启动就行,然后hadoop会通过ssh连到其它机器,把其它机器上面对应的程序也启动起来,使用ssh连接其它机器的时候会发现需要输入密码,所以现在需要实现ssh免密码登录。

# ssh连接主节点
[root@bigdata01 ~]# ssh bigdata01
The authenticity of host 'bigdata01 (fe80::c8a8:4edb:db7b:af53%ens33)' can't be established.
ECDSA key fingerprint is SHA256:uUG2QrWRlzXcwfv6GUot9DVs9c+iFugZ7FhR89m2S00.
ECDSA key fingerprint is MD5:82:9d:01:51:06:a7:14:24:a9:16:3d:a1:5e:6d:0d:16.
Are you sure you want to continue connecting (yes/no)? yes【第一次使用这个主机名需要输入yes】
Warning: Permanently added 'bigdata01,fe80::c8a8:4edb:db7b:af53%ens33' (ECDSA) to the list of known hosts.
root@bigdata01's password: 【这里需要输入密码】

ssh登录原理
ssh这种安全/加密的shell,使用的是非对称加密.
加密有两种,对称加密和非对称加密。
非对称加密的解密过程是不可逆的,比较安全。非对称加密会产生秘钥,秘钥分为公钥和私钥,在这里公钥是对外公开的,私钥是自己持有的。
ssh通信过程:
1、第一台机器会把自己的公钥给到第二台机器;
2、当第一台机器要给第二台机器通信时,第一台机器会给第二台机器发送一个随机的字符串;
3、第二台机器会使用公钥对这个字符串加密,同时第一台机器会使用自己的私钥也对这个字符串进行加密,然后也传给第二台机器;
4、这时第二台机器就有了两份加密的内容,一份是自己使用公钥加密的,一份是第一台机器使用私钥加密传过来的;
5、公钥和私钥是通过一定的算法计算出来的,这时第二台机器就会对比这两份加密之后的内容是否匹配。如果匹配,第二台机器就会认为第一台机器是可信的,就允许登录。如果不相等 就认为是非法的机器。
在这里插入图片描述
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,公钥和私钥成对生成并可以用于加密和解密。工作原理:

  • 密钥生成:用户选择两个大素数p和q,并计算它们的乘积n=pq,这将是公钥的一部分。然后,计算欧拉函数φ(n)=(p-1)(q-1),选取一个与φ(n)互质的整数e(通常为一个小于φ(n)且大于1的整数),公钥包含n和e。私钥则包含n和d(满足d*e ≡ 1 mod φ(n)),这样任何知道d的人都可以解密。
  • 加密:使用接收者的公钥(n和e)进行加密。消息被转换为数字m,通过取模运算(m^e) mod n得到密文c。
  • 解密:只有拥有私钥的人才能解密,使用私钥中的d,通过计算(c^d) mod n得到原始消息m。
# 使用rsa对ssh加密
# 执行这个命令以后,需要连续按 4 次回车键回到 linux 命令行才表示这个操作执行结束,在按回车的时候不需要输入任何内容。

[root@bigdata01 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8J8RDun4bklmx9T45SRsKAu7FvP2HqtriYUqUqF1q4 root@bigdata01
The key's randomart image is:
+---[RSA 2048]----+
|      o .        |
|     o o o .     |
|  o.. = o o      |
| +o* o *   o     |
|..=.= B S =      |
|.o.o o B = .     |
|o.o . +.o .      |
|.E.o.=...o       |
|  .o+=*..        |
+----[SHA256]-----+

# 执行以后会在~/.ssh目录下生产对应的公钥和私钥文件

[root@bigdata01 ~]# ll ~/.ssh/
total 12
-rw-------. 1 root root 1679 Apr  7 16:39 id_rsa
-rw-r--r--. 1 root root  396 Apr  7 16:39 id_rsa.pub

# 在bigdata01上执行
[root@bigdata01 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 在主节点 bigdata01机器上执行下面命令,将公钥信息拷贝到从节点bigdata02
[root@bigdata01 ~]# scp ~/.ssh/authorized_keys bigdata02:~/
The authenticity of host 'bigdata02 (192.168.182.101)' can't be established.
ECDSA key fingerprint is SHA256:uUG2QrWRlzXcwfv6GUot9DVs9c+iFugZ7FhR89m2S00.
ECDSA key fingerprint is MD5:82:9d:01:51:06:a7:14:24:a9:16:3d:a1:5e:6d:0d:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bigdata02,192.168.182.101' (ECDSA) to the list of known hosts.
root@bigdata02's password: 
authorized_keys                              100%  396   506.3KB/s   00:00    

# # 在主节点 bigdata01机器上执行下面命令,将公钥信息拷贝到从节点bigdata03
[root@bigdata01 ~]# scp ~/.ssh/authorized_keys bigdata03:~/
The authenticity of host 'bigdata03 (192.168.182.102)' can't be established.
ECDSA key fingerprint is SHA256:uUG2QrWRlzXcwfv6GUot9DVs9c+iFugZ7FhR89m2S00.
ECDSA key fingerprint is MD5:82:9d:01:51:06:a7:14:24:a9:16:3d:a1:5e:6d:0d:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bigdata03,192.168.182.102' (ECDSA) to the list of known hosts.
root@bigdata03's password: 
authorized_keys                              100%  396   606.1KB/s   00:00

# 在bigdata02上执行
[root@bigdata02 ~]# cat ~/authorized_keys  >> ~/.ssh/authorized_keys

# 在bigdata03上执行
[root@bigdata03 ~]# cat ~/authorized_keys  >> ~/.ssh/authorized_keys
# 验证bigdata01免密登陆bigdata02
[root@bigdata01 ~]# ssh bigdata02
Last login: Tue Apr  7 21:33:58 2020 from bigdata01
[root@bigdata02 ~]# exit
logout
Connection to bigdata02 closed.

# # 验证bigdata01免密登陆bigdata03
[root@bigdata01 ~]# ssh bigdata03
Last login: Tue Apr  7 21:17:30 2020 from 192.168.182.1
[root@bigdata03 ~]# exit
logout
Connection to bigdata03 closed.
[root@bigdata01 ~]# 


没必要实现从节点之间互相免密登录,因为在启动集群的时候只有主节点需要远程连接其它节点。

安装jdk及环境变量

# 解压jdk安装包
[root@bigdata01 ~]# cd /data/soft
[root@bigdata01 soft]# tar -zxvf jdk-8u202-linux-x64.tar.gz

# 重命名为jdk1.8
[root@bigdata01 soft]# mv jdk1.8.0_202 jdk1.8

# 配置环境变量 JAVA_HOME
[root@bigdata01 soft]# vi /etc/profile
.....
export JAVA_HOME=/data/soft/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH

# 验证
[root@bigdata01 soft]# source /etc/profile
[root@bigdata01 soft]# java -version          
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

集群节点之间时间同步

集群只要涉及到多个节点的就需要对这些节点做时间同步,如果节点之间时间不同步相差太多,会应该集群的稳定性,甚至导致集群出问题。

使用ntpdate -u ntp.sjtu.edu.cn实现时间同步

# 默认是没有ntpdate命令的,需要使用yum在线安装
[root@bigdata01 ~]# ntpdate -u ntp.sjtu.edu.cn
-bash: ntpdate: command not found

# 安装ntpdate
[root@bigdata01 ~]# yum install -y ntpdate
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.cn99.com
 * extras: mirrors.cn99.com
 * updates: mirrors.cn99.com
base                                                    | 3.6 kB     00:00     
extras                                                  | 2.9 kB     00:00     
updates                                                 | 2.9 kB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package ntpdate.x86_64 0:4.2.6p5-29.el7.centos will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================
 Package        Arch          Version                        Repository   Size
===============================================================================
Installing:
 ntpdate        x86_64        4.2.6p5-29.el7.centos          base         86 k

Transaction Summary
===============================================================================
Install  1 Package

Total download size: 86 k
Installed size: 121 k
Downloading packages:
ntpdate-4.2.6p5-29.el7.centos.x86_64.rpm                  |  86 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : ntpdate-4.2.6p5-29.el7.centos.x86_64                        1/1 
  Verifying  : ntpdate-4.2.6p5-29.el7.centos.x86_64                        1/1 

Installed:
  ntpdate.x86_64 0:4.2.6p5-29.el7.centos                                       

Complete!

# 执行ntpdate -u ntp.sjtu.edu.cn 确认是否可以正常执行
[root@bigdata01 ~]# ntpdate -u ntp.sjtu.edu.cn
 7 Apr 21:21:01 ntpdate[5447]: step time server 185.255.55.20 offset 6.252298 sec

# 建议把这个同步时间的操作添加到linux的crontab定时器中,每分钟执行一次
[root@bigdata01 ~]# vi /etc/crontab
* * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn

# 在bigdata02和bigdata03节点上配置时间同步
[root@bigdata02 ~]# yum install -y ntpdate
[root@bigdata02 ~]# vi /etc/crontab
* * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn

[root@bigdata03 ~]# yum install -y ntpdate
[root@bigdata03 ~]# vi /etc/crontab
* * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn

集群中三个节点的基础环境就都配置完毕了,接下来就需要在这三个节点中安装Hadoop了。

安装Hadoop

1、把hadoop-3.2.0.tar.gz安装包上传到/data/soft目录下

# 把hadoop-3.2.0.tar.gz安装包上传到/data/soft
[root@bigdata01 soft]# ll
total 527024
-rw-r--r--. 1 root root 345625475 Jul 19  2019 hadoop-3.2.0.tar.gz
drwxr-xr-x. 7   10  143       245 Dec 16  2018 jdk1.8
-rw-r--r--. 1 root root 194042837 Apr  6 23:14 jdk-8u202-linux-x64.tar.gz

2、解压hadoop安装包

# 在bigdata01上解压hadoop安装包
[root@bigdata01 soft]# tar -zxvf hadoop-3.2.0.tar.gz

3、修改hadoop相关配置文件

  • hadoop-env.sh,在文件末尾增加环境变量信息;
  • core-site.xml,fs.defaultFS属性中的主机名需要和主节点的主机名或者静态ip保持一致;
  • hdfs-site.xml文件,把hdfs中文件副本的数量设置为2,因为现在集群中有两个从节点,dfs.namenode.secondary.http-address设置为secondaryNamenode进程所在的节点信息;
  • mapred-site.xml,设置mapreduce使用的资源调度框架yarn;
  • yarn-site.xml,设置yarn上支持运行的服务和环境变量白名单,还需要设置resourcemanager的hostname,否则nodemanager找不到resourcemanager节点
  • workers文件,增加所有从节点的主机名,一个一行
  • start-dfs.sh,stop-dfs.sh,添加hdfs的datanode、namenode用户
    HDFS_DATANODE_USER、HDFS_DATANODE_SECURE_USER、HDFS_NAMENODE_USER、HDFS_NAMENODE_USER、HDFS_SECONDARYNAMENODE_USER;
  • start-yarn.sh,stop-yarn.sh,添加yarn的resourcemaneger、nodemanger用户
    YARN_RESOURCEMANAGER_USER、HADOOP_SECURE_DN_USER、YARN_NODEMANAGER_USER;
# 修改hadoop相关配置文件
[root@bigdata01 soft]# cd hadoop-3.2.0/etc/hadoop/

# 首先修改hadoop-env.sh文件,在文件末尾增加环境变量信息
[root@bigdata01 hadoop]# vi hadoop-env.sh 
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop

# 修改core-site.xml文件
# 注意fs.defaultFS属性中的主机名需要和主节点的主机名或者静态ip保持一致
[root@bigdata01 hadoop]# vi core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bigdata01:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop_repo</value>
   </property>
</configuration>

# 修改hdfs-site.xml文件
# 把hdfs中文件副本的数量设置为2,最多为2,因为现在集群中有两个从节点
# secondaryNamenode进程所在的节点信息
[root@bigdata01 hadoop]# vi hdfs-site.xml 
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>bigdata01:50090</value>
    </property>
</configuration>

# 修改mapred-site.xml
# 设置mapreduce使用的资源调度框架
[root@bigdata01 hadoop]# vi mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

# 修改yarn-site.xml,设置yarn上支持运行的服务和环境变量白名单
# 注意,针对分布式集群在这个配置文件中还需要设置resourcemanager的hostname,否则nodemanager找不到resourcemanager节点。
[root@bigdata01 hadoop]# vi yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>bigdata01</value>
	</property>
</configuration>

# 修改workers文件
# 增加所有从节点的主机名,一个一行
[root@bigdata01 hadoop]# vi workers
bigdata02
bigdata03

# 修改启动脚本

# 修改start-dfs.sh,stop-dfs.sh这两个脚本文件,在文件前面增加如下内容
[root@bigdata01 hadoop]# cd /data/soft/hadoop-3.2.0/sbin
[root@bigdata01 sbin]# vi start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

[root@bigdata01 sbin]# vi stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

# 修改start-yarn.sh,stop-yarn.sh这两个脚本文件,在文件前面增加如下内容
[root@bigdata01 sbin]# vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

[root@bigdata01 sbin]# vi stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

4、把bigdata01节点上将修改好配置的安装包拷贝到其他两个从节点

[root@bigdata01 sbin]# cd /data/soft/
[root@bigdata01 soft]# scp -rq hadoop-3.2.0 bigdata02:/data/soft/
[root@bigdata01 soft]# scp -rq hadoop-3.2.0 bigdata03:/data/soft/

5、格式化HDFS

# 在bigdata01节点上格式化HDFS
[root@bigdata01 soft]# cd /data/soft/hadoop-3.2.0
[root@bigdata01 hadoop-3.2.0]# bin/hdfs namenode -format
# 如果在后面的日志信息中能看到这一行,则说明namenode格式化成功。
common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted.

6、启动集群

# 在主节点 bigdata01上执行下面命令
[root@bigdata01 hadoop-3.2.0]# sbin/start-all.sh 
Starting namenodes on [bigdata01]
Last login: Tue Apr  7 21:03:21 CST 2020 from 192.168.182.1 on pts/2
Starting datanodes
Last login: Tue Apr  7 22:15:51 CST 2020 on pts/1
bigdata02: WARNING: /data/hadoop_repo/logs/hadoop does not exist. Creating.
bigdata03: WARNING: /data/hadoop_repo/logs/hadoop does not exist. Creating.
Starting secondary namenodes [bigdata01]
Last login: Tue Apr  7 22:15:53 CST 2020 on pts/1
Starting resourcemanager
Last login: Tue Apr  7 22:15:58 CST 2020 on pts/1
Starting nodemanagers
Last login: Tue Apr  7 22:16:04 CST 2020 on pts/1

# 验证
# 在bigdata01上查看java进程,是否存在NameNode、ResourceManager、SecondaryNameNode
[root@bigdata01 hadoop-3.2.0]# jps
6128 NameNode
6621 ResourceManager
6382 SecondaryNameNode

# 在bigdata02上查看java进程,是否存在NodeManager、DataNode
[root@bigdata02 ~]# jps
2385 NodeManager
2276 DataNode
# 在bigdata03上查看java进程,是否存在NodeManager、DataNode
[root@bigdata03 ~]# jps
2326 NodeManager
2217 DataNode

# 停止集群
# 在主节点bigdata01上执行停止命令
[root@bigdata01 hadoop-3.2.0]# sbin/stop-all.sh 
Stopping namenodes on [bigdata01]
Last login: Tue Apr  7 22:21:16 CST 2020 on pts/1
Stopping datanodes
Last login: Tue Apr  7 22:22:42 CST 2020 on pts/1
Stopping secondary namenodes [bigdata01]
Last login: Tue Apr  7 22:22:44 CST 2020 on pts/1
Stopping nodemanagers
Last login: Tue Apr  7 22:22:46 CST 2020 on pts/1
Stopping resourcemanager
Last login: Tue Apr  7 22:22:50 CST 2020 on pts/1

具体安装详情说明可查阅Hadoop官网

Hadoop的客户端节点

在实际工作中不建议直接连接集群中的节点来操作集群,直接把集群中的节点暴露给普通开发人员是不安全的,建议在业务机器上安装Hadoop,只需要保证业务机器上的Hadoop的配置和集群中的配置保持一致即可,这样就可以在业务机器上操作Hadoop集群了,此机器就称为是Hadoop的客户端节点,Hadoop的客户端节点可能会有多个,理论上是我们想要在哪台机器上操作hadoop集群就可以把这台机器配置为hadoop集群的客户端节点。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/754025.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mtu 1500 qdisc noop state DOWN group default qlen 1000问题的解决

问题描述 1、打开虚拟机终端&#xff0c;root身份启动ens网卡&#xff08;一般情况下还是会直接报错 ifup ens33 2、停止网卡设置disable再启动 systemctl stop NetworkManager 不报错即可 systemctl disable NetworkManagerservice network restart出现了绿色的OK啦&#…

流水线作业模拟程序

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 流水线作业模拟 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private int Count 0;private bool IsStop false;private void uiLight1_Click(object sender, EventArgs e…

某麦网自动刷新抢票脚本——手机端(高级版)

某麦网自动刷新抢票脚本——电脑端 小白操作-抵制黄牛–需要更好用更高级关注获取 如何用Python自动抢大麦网演出票&#xff1f; 在数字化时代&#xff0c;购票已经成为我们生活的一部分&#xff0c;无论是音乐会、话剧、体育赛事还是各种展览&#xff0c;抢票几乎成了一项“…

[每周一更]-(第103期):GIT初始化子模块

文章目录 初始化和更新所有子模块分步骤操作1. 克隆包含子模块的仓库2. 初始化子模块3. 更新子模块 查看子模块状态提交子模块的更改处理子模块路径错误的问题 该问题的缘由是因为&#xff1a;在写某些代码的时候&#xff0c;仓库中有些文件夹&#xff0c;只提交了文件夹名称到…

C# SocketUDP服务器,组播

SocketUDP 自己即是服务器又是客户端 &#xff0c;在发消息只需要改成对方ip和端口号即可 前提对方必须开启服务器 socket.Bind(new IPEndPoint(IPAddress.Parse("192.168.107.72"), 8080)); 控件&#xff1a;Button,TextBox,RichTextBox 打开自己服务器 public…

六、资产安全—信息分级资产管理与隐私保护(CISSP)

目录 1.信息分级 2.信息分级方法 3.责任的层级 4.资产管理 5.隐私数据管理角色 6.数据安全控制 7.数据保护方案 8.使用安全基线 六、资产安全—数据管理(CISSP): 五、身份与访问管理—身份管理和访问控制管理(CISSP): 1.信息分级 信息分级举列: 2.信息分级方…

Halcon 文本文件操作,形态学

一文件的读写 *******************************************************向文本文件写入字符串内容*************************************************************read_image (Image, fabrik)threshold (Image, Region, 0, 120)area_center (Region, Area, Row, Column)open_…

记录一下MATLAB优化器出现的问题和解决

今天MATLAB优化器出了点问题。我想了想&#xff0c;决定解决一下&#xff0c;不然后面项目没有办法进行下去。 我忘了截图了。 具体来说&#xff0c;是出现了下面的问题。 Gurobi: Cplex: 在上次为了强化学习调整了Pytoch环境以后&#xff08;不知道是不是这个原因&#…

Mac(M1芯片)安装多个jdk,Mac卸载jdk

1.jdk下载 oracle官方链接&#xff1a;oracle官方下载链接 2.安装 直接下一步&#xff0c;下一步就行 3.查看是否安装成功 出现下图内容表示安装成功。 4.配置环境变量 open -e .bash_profile 路径建议复制过去 #刷新环境变量 source ~/.bash_profile 5.切换方法 6.jdk…

页分裂和页合并——Java全栈知识(33)

上篇文章我们讲到了 MySQL 的数据页&#xff0c;我们说到了 InnoDB 的索引是以 B树的形式构建的&#xff0c;而且 B树的节点都是一个数据页。 但是 B树在使用过程中难免会有节点分裂和节点合并的过程。 因为我们是以数据页为基本单位构造的 B树&#xff0c;那么 B树的节点分裂和…

火锅食材配送小程序的作用有什么

火锅店、麻辣烫店、餐厅等对火锅丸子食材的需求量很高&#xff0c;还有普通消费者零售等&#xff0c;市场中或城市里总是有着较为知名的食材店或厂商&#xff0c;通过产品质量、口碑、宣传、老客复购等获得更多生意营收。 线下生意放缓&#xff0c;需要商家拓宽渠道。运用雨科…

7thonline第七在线受邀出席零售业卓越运营联盟(COER)2024

近期&#xff0c;一场汇集行业精英、探讨卓越运营的盛会——零售业卓越运营联盟&#xff08;COER&#xff09;2024论坛开幕。此次论坛吸引了全球众多零售业者的关注&#xff0c;7thonline第七在线创始人马克骏先生也应邀参与该论坛&#xff0c;共同探讨零售业的未来发展趋势。 …

【保姆级详细介绍JavaScript初识及基本语法】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

Java代码基础算法练习-判断学生成绩等级-2024.06.28

任务描述&#xff1a; 输入一个学生的成绩&#xff08;成绩大于等于 0 并小于等于 100&#xff09;&#xff0c;根据成绩判断学生成绩的等级。 60 分以下不及格&#xff1b;60-70 分为及格&#xff1b;70-80 分为中等&#xff1b;80-90 分为良好&#xff1b;90 分以上为优秀。 …

如何从iPhone恢复错误删除的照片

嘿&#xff0c;iPhone 用户&#xff01;作为一名苹果专业人士&#xff0c;我见过相当多的“哎呀&#xff0c;我删除了它&#xff01;”的时刻。今天&#xff0c;我在这里指导您完成从iPhone中恢复那些珍贵的&#xff0c;错误删除的照片的迷宫。坐下来&#xff0c;拿起你的设备&…

琴童杂志琴童杂志社琴童编辑部2024年第2期目录

成长空间 和钢琴成为一辈子的好朋友 赵宣萱; 4-5 弦外之音 雅克伊贝尔《室内乐小协奏曲》的演奏技术难点解析 张家睿;王韵然; 6-8 歌剧《艺术家的生涯》中咏叹调《人们叫我咪咪》的艺术特征和演唱处理 孙淼; 9-11《琴童》投稿&#xff1a;cn7kantougao163.com …

Transformer 结构

目录 一、Transformer 的整体结构二、Input Encoding三、Transformer Block3.1 Encoder3.1.1 Attention3.1.2 Self-attention3.1.3 Multi-head Attention 3.2 Decoder3.2.1 Masked Multi-head Attention 四、Transformer 的优缺点 遇到看不明白的地方&#xff0c;欢迎在评论中留…

spring boot 3.0.1多模块项目使用nacos动态配置

根pom文件增加&#xff0c;spring-cloud-alibaba包管理&#xff0c;注意版本spring-boot 3.0.3&#xff0c;spring-cloud-alibaba 2022.0.0.0-RC1 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0…

Redis--18--Redis Desktop Manage下载与安装

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Redis Desktop Manage1.官网下载https://redis.io/insight/ 2.安装方法3.使用方法3.1.进入RedisDesktopManager的主界面3.2 新建连接3.3 支持操作 Redis Desktop Ma…

RocketMQ快速入门:linux安装rocketmq并配置开机自启(十一)

目录 0. 引言1. 下载安装包1.1 高版本直接下载安装包1.2 下载源码包进行编译 2. namesrv和broker安装2.1 安装2.2 放开服务器端口2.3 测试 3. 配置开机自启3.1 配置namesrv开机自启3.2 配置broker开机自启 0. 引言 之前我们针对本机电脑安装rocketmq进行了讲解&#xff0c;同时…