- 大数据是什么?
- Hadoop基本概念介绍
- 一、什么是Hadoop?
- 二、Hadoop优势——四高
- 三、Hadoop组成(重点)
- 四、HDFS架构
- 五、YARN架构
- 六、MapReduce架构
- 七、HDFS、YARN、MapReduce 三者关系
- Hadoop运行环境搭建
- 虚拟机的准备
- 一、安装虚拟机
- 二、虚拟机配置及环境准备
- Hadoop运行模式
- 一、本地运行模式
- 二、伪分布式模式
- 三、完全分布式模式
- 1.虚拟机准备
- 2.准备一个集群分发脚本
- 3.SSH 无密登录配置
- 4.集群配置
- 5.群起集群
- 6.配置历史服务器
- 7.配置日志的聚集
- 8.集群启动/停止方式总结总结
- 9.编写 Hadoop 集群常用脚本
- 9.常用端口号说明
- Hadoop入门总结(面试可能问)
- 1.常用端口号
- 2.常用的配置文件
1)大数据的主要解决问题:海量数据的采集、存储和分析计算问题。 2)重要单位:按顺序->bit、Byte、KB、MB、GB、TB、、PB、EB。 1Byte = 8bit 1K = 1024Byte 1MB = 1024K 1G = 1024M 1T = 1024G 1P = 1024T 3)大数据特点:大量、高速、多样(结构化数据和非结构化数据)、低价密度低 以数据库/文本为主的结构化数据,以网络日志、音频、视频、图片、地理位置信息为主的非结构化数据。Hadoop基本概念介绍 一、什么是Hadoop?
1)Hadoop是一个分布式系统基础架构 2)重要解决海量数据存储和计算的问题 2)可以说Hadoop是一个大的生态圈二、Hadoop优势——四高
- 高可靠性
因为Hadoop在底层维护了数据的副本,所以即使某个计算单元或存储单元产生了故障,也不会造成数据的丢失。
如上图,三台服务器上,虽然102上的数据丢了一个,但在103和104还存在着副本,就不会造成它的丢失。 - 高扩展性
集群间分配任务数据,可以动态的增加删除服务器,可以很便利的扩展数以千计的节点。
在双十一的时候,就可以动态的增加服务器。 - 高效性
Hadoop集群之间是并行工作的,这样可以加快任务处理的速度。 - 高容错性
能够自动将失败的任务重新分配。假如某台结点的任务挂掉了,就可以自动分配到另一台节点继续执行。
hadoop1.x的时代,Hadoop中的mapreduce同时处理计算和资源的调度,耦合性较大,独立性较小。(模块间联系越多,其耦合性越强,同时表明其独立性越差。) hadoop2.x的时代,增加了yarn,它只负责资源的调度,mapreduce只负责运算,这样各个模块的独立性提高了。四、HDFS架构
HDFS是一个分布式文件系统
- 架构
1)NameNode(nn)----老板
这里主要存储文件的元数据,就是指文件名、文件目录结构、文件属性(生成时间、副本数)、以及每个文件的块列表和块所在的DataNode等信息
2)DataNode(dn)----员工
这里顾名思义存的就是文件的块数据和块数据的校验和。
3)Secondary NameNode(2nn)----秘书
这里存放的是namenode的元数据备份,每隔一段时间这个小秘就会去把老板的备份一下,到后面的part细讲。
YARM是一个资源调度器
- 架构
1)ResourceManager(RM):整个集群资源(内存、CPU等)的老大
2)NodeManager(N M):单个节点服务器资源老大
3)ApplicationMaster(AM):单个任务运行的老大
4)Container:容器,相当一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等。
上图就是yarn的框架,客户端可以有多个,集群上可以运行多个ApplicationMaster ,每个nodemanger上可以有多个Container。
七、HDFS、YARN、MapReduce 三者关系MapReduce负责数据的计算。将计算分为map阶段和reduce阶段。
1)Map阶段并行处理输入的数据
2)Reduce阶段对map端的结果进行汇总
1、有一个mapreduce任务,首先在客户端启动,这个时候需要一个ApplicationMaster,管理这个任务,这里我们简称mrApplicationMaster,此时拿到任务就要去申请资源。 2、向整个集群资源的老大ResourceManger去申请运算资源。 3、申请到资源后,mrApplicationMaster会遍历hdfs的文件,规划启动多少个mapTask和reduceTask。 4、然后mrApplicationMaster向ResourceManger汇报maptask,reduecetask数,申请nodemanager资源,每个nodemanager节点上管理运算资源,然后nodemanger启动容器进行计算。 5、最后将ruducetask的输出结果输出到hdfs上。Hadoop运行环境搭建 虚拟机的准备 一、安装虚拟机
1. VMware的安装
官网进行安装,具体教程可以问度娘。
2. CentOS系统的安装
系统的安装首先先配置电脑,再安装系统。
这里可以先百度,后期会出详细教程,这里再不多赘述。
这里讲一下里面的虚拟网络IP修改地址配置和主机名hosts文件的修改,这些命令也很重要!!
虚拟机网络IP修改地址配置(Linux命令)
1)修改网络IP地址为静态IP地址,避免IP地址经常变化,从而方便节点服务器间的互相通信。
[root@hadoop100 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
2)修改以及添加
#修改 BOOTPROTO="static" /#IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议) #添加 #IP地址 IPADDR=192.168.10.100 #网关 GATEWAY=192.168.10.2 #域名解析器 DNS1=192.168.10.2
3)修改IP地址后的结果如图所示,执行“:wq”命令,保存退出
4)执行"systemctl restart network"命令,重启网络服务。如果报错,则执行“reboot”命令,重启虚拟机
[root@hadoop100 ~]# systemctl restart network
5)使用ifconfig命令查看当前IP,查看是否与刚才修改的IPADDR相对应
[root@hadoop100 ~]# ifconfig
修改主机名和hosts文件
1)修改主机名称
#改为hadoop100 [root@hadoop100 ~]# vim /etc/hostname hadoop100
2)配置Linux克隆机主机名称映射hosts文件(方便以后打开这个的时候不用输地址,直接输后面的短名字,其实就是为了方便),打开/etc/hosts
[root@hadoop100 ~]# vim /etc/hosts
#添加如下内容 192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108
3)重启
[root@hadoop100 ~]# reboot
4)修改windows的主机映射文件(hosts文件)
(1)如果 *** 作系统是window7,可以直接修改
(a)进入C:WindowsSystem32driversetc路径
(b)打开hosts文件并添加如下内容,然后保存
192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108
(2)如果 *** 作系统是window10,先拷贝出来,修改保存以后,再覆盖即可
(a)进入C:WindowsSystem32driversetc路径
(b)拷贝hosts文件到桌面
(c)打开桌面hosts文件并添加如下内容
192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 192.168.10.104 hadoop104 192.168.10.105 hadoop105 192.168.10.106 hadoop106 192.168.10.107 hadoop107 192.168.10.108 hadoop108
(d)将桌面hosts文件覆盖C:WindowsSystem32driversetc路径hosts文件
3. 远程终端工具的安装
二、虚拟机配置及环境准备安装Xshell7,然后配置,这里也不再多赘述。
1.ping一下百度,测试一下能上网吗?
[root@hadoop100 ~]# ping www.baidu.com
2.安装 epel-release
这就相当于一个一个网络仓库,里面有很多包。
[root@hadoop100 ~]# yum install -y epel-release
注意:如果 Linux 安装的是最小系统版,还需要安装如下工具;如果安装的是 Linux
桌面标准版,不需要执行如下 *** 作:
#net-tool:工具包集合,包含 ifconfig 等命令 root@hadoop100 ~]# yum install -y net-tools #vim:编辑器 [root@hadoop100 ~]# yum install -y vim
3.关闭防火墙,关闭防火墙开机自启
[root@hadoop100 ~]# systemctl stop firewalld [root@hadoop100 ~]# systemctl disable firewalld.service
基本配置差不多了,剩下的不再赘述,后面另出一个详细说吧~~
- Hadoop 目录结构
[atguigu@hadoop102 hadoop-3.1.3]$ ll 总用量 52 drwxr-xr-x. 2 atguigu atguigu 4096 5 月 22 2017 bin drwxr-xr-x. 3 atguigu atguigu 4096 5 月 22 2017 etc drwxr-xr-x. 2 atguigu atguigu 4096 5 月 22 2017 include drwxr-xr-x. 3 atguigu atguigu 4096 5 月 22 2017 lib drwxr-xr-x. 2 atguigu atguigu 4096 5 月 22 2017 libexec -rw-r--r--. 1 atguigu atguigu 15429 5 月 22 2017 LICENSE.txt -rw-r--r--. 1 atguigu atguigu 101 5 月 22 2017 NOTICE.txt -rw-r--r--. 1 atguigu atguigu 1366 5 月 22 2017 README.txt drwxr-xr-x. 2 atguigu atguigu 4096 5 月 22 2017 sbin drwxr-xr-x. 4 atguigu atguigu 4096 5 月 22 2017 share
- 重要目录
Hadoop运行模式(1)bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行 *** 作的脚本
(2)etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
(3)lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
(4)sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
(5)share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例
一、本地运行模式Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
1、本地模式:单机运行,一般自己学习的时候测试用一用,生产环境不用。
2、伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模
拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。哈哈哈哈哈哈!!!大海哥讲的。
3、完全分布式模式:多台服务器组成分布式环境。生产环境使用。
你可以在本地执行一个官方的WordCount体验一下~~
#1,创建在 hadoop-3.1.3 文件下面创建一个 wcinput 文件夹 [atguigu@hadoop102 hadoop-3.1.3]$ mkdir wcinput #2,在 wcinput 文件下创建一个 word.txt 文件 [atguigu@hadoop102 hadoop-3.1.3]$ cd wcinput #3,编辑 word.txt 文件 [atguigu@hadoop102 wcinput]$ vim word.txt #在文件中输入如下内容 hadoop yarn hadoop mapreduce atguigu atguigu #保存退出::wq #4,回到 Hadoop 目录/opt/module/hadoop-3.1.3 #5,执行程序 [atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput #6,查看结果 [atguigu@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000二、伪分布式模式
说一下高大尚的完全分布式,这个再不多赘述,么么哒~~找度娘吧
三、完全分布式模式1.虚拟机准备要做什么呢?
1)准备 3 台客户机(关闭防火墙、静态 IP、主机名称) 2)安装 JDK
3)配置环境变量
4)安装 Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置 ssh
9)群起并测试集群
冲起来吧!!
2.准备一个集群分发脚本这里就在不多赘述,你可以克隆,也可以重新创,准备好就可以了,注意防火墙要关闭,以及静态IP和主机名称的配置喔~~
啥??你问我为啥要准备? 当然一切为了便利,一切为了早点下班!!
1)scp安全拷贝
scp可以实现服务器和服务器之间的数据的拷贝(from server1 to server2)
基本语法
案例:
在 hadoop102 上,将 hadoop102 中/opt/module/jdk1.8.0_212 目录拷贝到hadoop103 上。
[atguigu@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212 atguigu@hadoop103:/opt/module
2)rsync 远程同步工具
rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。
基本语法:
案例:
#同步 hadoop102 中的/opt/module/hadoop-3.1.3 到 hadoop103 [atguigu@hadoop102 module]$ rsync -av hadoop-3.1.3/ atguigu@hadoop103:/opt/module/hadoop-3.1.3/
3)xsync 集群分发脚本
(1)需求:循环复制文件到所有节点的相同目录下
(2)需求分析:
(a)rsync 命令原始拷贝:
rsync -av /opt/module atguigu@hadoop103:/opt/
(b)期望脚本:
xsync 要同步的文件名称
(c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)
[atguigu@hadoop102 ~]$ echo $PATH #下面是输出 /home/atguigu/bin: 全局变量 /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bin
(3)脚本实现
(a)在/home/atguigu/bin 目录下创建 xsync 文件
[atguigu@hadoop102 opt]$ cd /home/atguigu [atguigu@hadoop102 ~]$ mkdir bin [atguigu@hadoop102 ~]$ cd bin [atguigu@hadoop102 bin]$ vim xsync
在xsync该文件中编写如下代码
#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop102 hadoop103 hadoop104 do echo ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) #6. 获取当前文件的名称 fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exists! fi done done
(b)修改脚本 xsync 具有执行权限
[atguigu@hadoop102 bin]$ chmod +x xsync
(c)将脚本复制到/bin 中,以便全局调用
[atguigu@hadoop102 bin]$ sudo cp xsync /bin/
(d)同步环境变量配置(root 所有者)
[atguigu@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。
让环境变量生效
[atguigu@hadoop103 bin]$ source /etc/profile [atguigu@hadoop104 opt]$ source /etc/profile3.SSH 无密登录配置
(1)基本语法
ssh 另一台电脑的 IP 地址
ssh 连接
[atguigu@hadoop102 ~]$ ssh hadoop103
退回到 hadoop102
[atguigu@hadoop103 ~]$ exit
(2)无密钥配置
- 免密登录原理
1、首先A服务器上要生成密钥对,公钥和私钥。
2、将A的公钥拷贝给B,然后重命名授权key
3、A向B采用ssh访问,数据是用A的私钥进行加密。
4、B接收到数据后,在授权key中查找是否有对应的用户名和IP,这里就是A的,然后生成一个随机字符串。
5、B将字符串采用A的公钥加密,发送给A。
6、A接收到B发来的随机字符串那个数据后,用A自己的私钥进行解密,然后将解密的数据再发给B,B将发过来的和自己随机产生的进行对比,如果一样就可以免密登录了。
总结:A要免密码登录到B,B首先要拥有A的公钥,然后B要做一次加密验证。对于非对称加密,公钥加密的密文不能公钥解开,只能私钥解开。
这里解释一下非对称加密:
非对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加 密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。
- 实现免密登录
1)生成公钥和私钥
[atguigu@hadoop102 .ssh]$ pwd /home/atguigu/.ssh [atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)。
2)将公钥拷贝到要免密登录的目标机器上
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102 [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103 [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:
还需要在 hadoop103 上采用 atguigu 账号配置一下无密登录到 hadoop102、hadoop103、hadoop104 服务器上。
还需要在 hadoop104 上采用 atguigu 账号配置一下无密登录到 hadoop102、hadoop103、hadoop104 服务器上。
还需要在 hadoop102 上采用 root 账号,配置一下无密登录到 hadoop102、hadoop103、hadoop104;
- .ssh 文件夹下(~/.ssh)的文件功能解释
4.集群配置(1)集群部署规划
注意:
➢ NameNode 和 SecondaryNameNode 不要安装在同一台服务器
➢ ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在同一台机器上。
(2)配置文件说明
➢Hadoop 配置文件分两类:默认配置文件和自定义配置文件。
➢只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。
1)默认配置文件
2)自定义配置文件
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在
$HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置。
(3)配置集群
- 核心配置文件
配置 core-site.xml
[atguigu@hadoop102 ~]$ cd $HADOOP_HOME/etc/hadoop [atguigu@hadoop102 hadoop]$ vim core-site.xml #文件内容如下:fs.defaultFS hdfs://hadoop102:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.3/data hadoop.http.staticuser.user atguigu
- HDFS 配置文件
配置 hdfs-site.xml
[atguigu@hadoop102 hadoop]$ vim hdfs-site.xml #文件内容如下:dfs.namenode.http-address hadoop102:9870 dfs.namenode.secondary.http-address hadoop104:9868
- YARN 配置文件
配置 yarn-site.xml
[atguigu@hadoop102 hadoop]$ vim yarn-site.xml #文件内容如下:yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP RED_HOME
- MapReduce 配置文件
配置 mapred-site.xml
[atguigu@hadoop102 hadoop]$ vim mapred-site.xml #文件内容如下:mapreduce.framework.name yarn
(4)在集群上分发配置好的 Hadoop 配置文件
[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop- 3.1.3/etc/hadoop/5.群起集群
(1)配置 workers
[atguigu@hadoop102 hadoop]$ vim /opt/module/hadoop- 3.1.3/etc/hadoop/workers #在该文件中增加如下内容 hadoop102 hadoop103 hadoop104
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
#同步分发所有节点配置文件 [atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc
(2)启动集群
- 如果集群是第一次启动,需要在集群节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。)
[atguigu@hadoop102 hadoop-3.1.3]$ hdfs namenode -format
- 启动 HDFS
启动的是HDFS中的节点 NameNode、DataNode和secondaryNameNode
[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
- 在配置了ResourceManager 的节点启动 YARN
[atguigu@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
- Web 端查看 HDFS 的 NameNode
(a)浏览器中输入:http://hadoop102:9870
(b)查看 HDFS 上存储的数据信息
- Web 端查看 YARN 的 ResourceManager
(a)浏览器中输入:http://hadoop103:8088
(b)查看 YARN 上运行的 Job 信息
(3)集群基本测试
- HDFS 文件存储路径
/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1436128598- 192.168.10.102-1610603650062/current/finalized/subdir0/subdir0 - 执行 wordcount 程序
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output6.配置历史服务器
为啥要配这个,因为我念旧叭~~
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
(1)配置 mapred-site.xml
[atguigu@hadoop102 hadoop]$ vim mapred-site.xml #在该文件里面增加如下配置。mapreduce.jobhistory.address hadoop102:10020 mapreduce.jobhistory.webapp.address hadoop102:19888
(2)分发配置
[atguigu@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
(3)在 hadoop102 启动历史服务器
[atguigu@hadoop102 hadoop]$ mapred --daemon start historyserver7.配置日志的聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到 HDFS 系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
- 注意:开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager 和
HistoryServer。 - 开启日志聚集功能具体步骤如下:
(1) 配置 yarn-site.xml
[atguigu@hadoop102 hadoop]$ vim yarn-site.xml #在该文件里面增加如下配置。yarn.log-aggregation-enable true yarn.log.server.url http://hadoop102:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800
(2)分发配置
[atguigu@hadoop102 hadoop]$ xsync $HADOOP_HOME/etc/hadoop/yarnsite.xml
注意:这里的 HADOOP_HOME=/opt/module/hadoop-3.1.3,$HADOOP_HOME是一个变量引用
(3)关闭 NodeManager 、ResourceManager 和 HistoryServer
[atguigu@hadoop103 hadoop-3.1.3]$ sbin/stop-yarn.sh [atguigu@hadoop103 hadoop-3.1.3]$ mapred --daemon stop historyserver
(4)启动 NodeManager 、ResourceManage 和 HistoryServer
[atguigu@hadoop103 ~]$ start-yarn.sh [atguigu@hadoop102 ~]$ mapred --daemon start historyserver
(5)查看日志
8.集群启动/停止方式总结总结历史服务器地址
http://hadoop102:19888/jobhistory
(1)各个模块分开启动/停止(配置 ssh 是前提)
(1)整体启动/停止 HDFS start-dfs.sh stop-dfs.sh (2)整体启动/停止 YARN start-yarn.sh stop-yarn.sh
(2)各个服务组件逐一启动/停止
(1)分别启动/停止 HDFS 组件 hdfs --daemon start/stop namenode/datanode/secondarynamenode (2)启动/停止 YARN yarn --daemon start/stop resourcemanager/nodemanager9.编写 Hadoop 集群常用脚本
觉得分开启动麻烦,那就写个启动脚本叭~~
(1)Hadoop 集群启停脚本(包含 HDFS,Yarn,Historyserver):myhadoop.sh
[atguigu@hadoop102 ~]$ cd /home/atguigu/bin [atguigu@hadoop102 bin]$ vim myhadoop.sh # 输入如下内容 #!/bin/bash if [ $# -lt 1 ] then echo "No Args Input..." exit ; fi case in "start") echo " =================== 启动 hadoop 集群 ===================" echo " --------------- 启动 hdfs ---------------" ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh" ## 当前服务器远程登录另一个服务器B后执行某个命令或脚本(上面的句子的意思) echo " --------------- 启动 yarn ---------------" ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh" echo " --------------- 启动 historyserver ---------------" ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver" ;; "stop") echo " =================== 关闭 hadoop 集群 ===================" echo " --------------- 关闭 historyserver ---------------" ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver" echo " --------------- 关闭 yarn ---------------" ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh" echo " --------------- 关闭 hdfs ---------------" ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh" ;; *) echo "Input Args Error..." ;; esac #保存后退出,然后赋予脚本执行权限 [atguigu@hadoop102 bin]$ chmod +x myhadoop.sh
2)查看三台服务器 Java 进程脚本:jpsall
[atguigu@hadoop102 ~]$ cd /home/atguigu/bin [atguigu@hadoop102 bin]$ vim jpsall #输入如下内容 #!/bin/bash for host in hadoop102 hadoop103 hadoop104 do echo =============== $host =============== ssh $host jps done #保存后退出,然后赋予脚本执行权限 [atguigu@hadoop102 bin]$ chmod +x jpsall
3)分发/home/atguigu/bin 目录(里面有这两个脚本,保证自定义脚本在三台机器上都可以使用
[atguigu@hadoop102 ~]$ xsync /home/atguigu/bin/9.常用端口号说明 Hadoop入门总结(面试可能问) 1.常用端口号
- Hadoop3.x
HDFS NameNode 内部通常端口:8020/9000/9820
HDFS NameNode对用户的查询端口:9870
Yarn查看任务运行情况的:8088
历史服务器:19888
- Hadoop3.x
2.常用的配置文件HDFS NameNode 内部通常端口:8020/9000
HDFS NameNode 对用户的查询端口:50070
Yarn查看任务运行情况的:8088
历史服务器:19888
--Hadoop3.x-- core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml workers
--Hadoop2.x-- core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml slaves
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)