大数据Hadoop学习(一)入门

大数据

概念

  • 指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发现力和流程优化能力的海量,高增长率和多样化的信息资产
  • 大数据主要是为了解决海量数据的采集,储存和分析计算的问题

特点

  1. 大量:数据量很大
  2. 高速:能够快速实时的计算技术
  3. 多样:数据会被分成结构化数据和非结构化数据
    • 结构化数据:以数据库/文本为主
    • 非结构化数据:网络日志,音频,视频,图片,地理位置信息
  4. 低价值密度:价值密度的高低与数据总量的大小成反比,也就是说需要快速对有价值数据“提纯”成为目前大数据背景下需要解决的问题

应用场景

  1. 抖音会推荐的都是你喜欢的视频
  2. 电商站内广告推荐
  3. 分析用户消费习惯,为用户购买商品提供便利
  4. 物流仓储,上午下单下午送达
  5. 保险,海量数据的挖掘以及风险预测能力
  6. 金融,多维度体现用户特征,帮助金融机构推荐优质的客户
  7. 房产,大数据全面主力房地产行业,打造精准投资与营销
  8. 人工智能,5G,物联网,虚拟与现实

Hadoop

概述

  • Hadoop是一个由Apache基金会所开发的分布式系统基础架构
  • 主要解决海量数据的存储和海量数据的分析计算问题
  • 我们一般指的Hadoop主要指的是Hadoop的生态圈

hadoop发展历史

  1. Hadoop的创始人Doug Cutting,为了实现类似于Google的搜索功能,在Luence框架的基础上进行优化升级,查询引擎和索引引擎
  2. 因为Luence框架有存储海量数据,检索海量速度慢等缺点,所以模仿google解决这问题的办法,使用微型版的Nutch,通过借鉴三篇论文来实现下面三个新的框架
    • GFS -----》HDFS
    • Map-Reduce -------》MR
    • BigTable -------》 HBase
  3. 2003-2004年,Google公开了部分GFS和MapReduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和MapReduce机制,使Nutch性能飙升。
  4. 2005 年Hadoop 作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。
  5. 2006 年 3 月份,Map-Reduce和Nutch Distributed File System (NDFS)分别被纳入到 Hadoop 项目中,Hadoop就此正式诞生,标志着大数据时代来临。
  6. 名字来源于Doug Cutting儿子的玩具大

hadoop三大发行版本

  1. Apache:最原始版本,用于入门学习最好
    • 官网:https://hadoop.apache.org/
    • 下载地址:https://hadoop.apache.org/releases.html
  2. Cloudera:内部集成许多大数据框架,更好的使用系统,对应版本CDH
    • 官网:https://www.cloudera.com/downloads/cdh
    • 下载地址:https://docs.cloudera.com/documentation/enterprise/6/releasenotes/topics/rg_cdh_6_download.html
  3. Hortonworks:跟Cloudera类似,不过文档更好,对应产品HDP
    • 官网地址:https://hortonworks.com/products/data-center/hdp/
    • 下载地址:https://hortonworks.com/downloads/#data-platform

hadoop的优势

  1. 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失

  2. 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点,可以动态增加服务器

  3. 高效性:在MapReduce的思想下,Hadoop是并行工作,以加快任务处理速度
    在这里插入图片描述

  4. 高容错性:能够自动将失败的任务重新分配
    在这里插入图片描述

hadoop的组成

  1. Hadoop 1.x 的组成部分
    在这里插入图片描述
  2. Hadoop 2.x 的组成部分,跟1.x的区别在于,1.x的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大。所以将资源调度这一功能划分出来,用Yarn进行资源调度
    在这里插入图片描述
  3. Hadoop的3.x组成部分
HDFS
  • Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。
  • 主要由三个部分组成
    • NameNode(nn):存储文件的元数据,也就是文件名,文件目录结构,文件属性,文件的块列表,块所在的DataNode等等,也就是存储数据的地理信息的本身信息
    • DataNode(dn):就是本地系统存储文件的快数据,以及快数据的校验和
    • Secondary NameNode(2nn):是NameNode的备份,每隔一段时间就会对NameNode的元数据进行备份
      在这里插入图片描述
YARN
  • Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。
  • Yarn主要由下面几个部分组成:
    • ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
    • NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
    • ApplicationMaster:数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
    • Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息。
      在这里插入图片描述
MapReduce
  • 主要是用于计算的功能,计算的过程分为两个阶段:
    • Map:Map阶段并行处理输入数据
    • Reduce:对Map结果进行汇总
三者之间的关系
  1. 第一阶段HDFS进行数据存储
    在这里插入图片描述

  2. 第二阶段YARN进行资源管理
    在这里插入图片描述

  3. 第三阶段当用户发出请求要求找到1.avi,调用MapReduce进行Map阶段
    在这里插入图片描述

  4. 第四阶段调用MapReduce进行Reduce阶段进行汇总,将结果返回并且备份到2nn节点
    在这里插入图片描述
    在这里插入图片描述

大数据技术生态体系

  1. 数据传输层:
    • Sqoop:Sqoop 是一款开源的工具,主要用于在 Hadoop、Hive 与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。
    • Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;
    • Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统;
  2. 数据存储层:
    • Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
  3. 资源管理层:
  4. 数据计算层:
    • Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数据进行计算。
    • Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。
    • Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
  5. 任务调度层:
    • Oozie 是一个管理 Hadoop 作业(job)的工作流程调度管理系统。
  6. ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
    在这里插入图片描述

Hadoop的运行环境搭建

模板虚拟机搭建

安装VMware Workstation 15

  1. 双击安装软件
    在这里插入图片描述
  2. 一直下一步,安装路径可以自己更改,更新计划和一些你不想要的配置可以不配
  3. 双击安装好的软件,如果需要密钥的话,就上baidu搜索一下就好了,网址:https://www.cnblogs.com/98han/p/13170117.html
    在这里插入图片描述
  4. 安装好后的界面
    在这里插入图片描述

安装Centos

第一步安装硬件
  1. 打开VMware 然后点击创建新的虚拟机
    在这里插入图片描述
  2. 选择自定义
    在这里插入图片描述
  3. 然后下一步,再下一步,到了这一步,选择稍后安装操作系统
    在这里插入图片描述
  4. 下一步选择操作系统
    在这里插入图片描述
  5. 配置虚拟机名称和存放位置
    在这里插入图片描述
  6. 配置处理器,处理器数量和每个处理器内核数不要超过本机的cpu数
    在这里插入图片描述
    • 如何查看cpu数量,打开任务管理器,点击打开资源监视器
      在这里插入图片描述
    • 点击CPU数你的CPU数量
      在这里插入图片描述
  7. 配置虚拟机内存
    在这里插入图片描述
  8. 配置网络
    在这里插入图片描述
  9. 一直下一步直到指定磁盘,推荐50G
    在这里插入图片描述
  10. 配置磁盘文件,推荐放到自己指定目录下,方便配置
    在这里插入图片描述
  11. 最后点击完成
第二步安装软件
  1. 安装操作系统前,首先看一下电脑的虚拟化技术打开了没有,在任务管理器上看
    在这里插入图片描述

  2. 要开始安装了,点击 CD/DVD 磁盘
    在这里插入图片描述

  3. 选择镜像,选择操作系统文件
    在这里插入图片描述

  4. 插入之后,就点击开启虚拟机
    在这里插入图片描述

  5. 进来之后敲击回车
    在这里插入图片描述

  6. 耐心等待安装
    在这里插入图片描述

  7. 安装完成之后就会来到这个页面,选择中文和简体中文
    在这里插入图片描述

  8. 进来之后,先选日期和时间
    在这里插入图片描述

  9. 配置日期和时间
    在这里插入图片描述

  10. 完成之后,选择软件选择
    在这里插入图片描述

  11. 如果你想要命令行操作的话,选择默认的最小安装,但是新手推荐图形化界面,GNOME桌面
    在这里插入图片描述

  12. 完成之后,选择安装位置
    在这里插入图片描述

  13. 进去之后,选择我要分区,然后点击完成
    在这里插入图片描述

  14. 在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  15. 然后点击完成,下一步选择KDUMP
    在这里插入图片描述

  16. KDUMP的作用主要是为了防止系统崩溃信息丢失,所以这个是开辟一部分内存进行备份,学习阶段就不开启了
    在这里插入图片描述

  17. 然后开始配置网络和主机名
    在这里插入图片描述

  18. 然后配置主机名,打开网络
    在这里插入图片描述

  19. 然后开始安装

  20. 等待安装的时候可以配置root密码
    在这里插入图片描述在这里插入图片描述

  21. 安装成功后,点击重启
    在这里插入图片描述

  22. 成功之后进入这个页面,点击第一个
    在这里插入图片描述

  23. 点击我同意,再点击完成
    在这里插入图片描述

  24. 点击完成配置,然后选择语言
    在这里插入图片描述

  25. 然后再下一步,隐私看有没有打开,有打开就下一步,然后到达时区,点击允许
    在这里插入图片描述

  26. 选择上海
    在这里插入图片描述

  27. 下一个就跳过,到关于您,就随你自己意愿设置
    在这里插入图片描述

  28. 下一个密码就跟你之前设置的密码一样就行了,然后点击使用
    在这里插入图片描述

第三步配置IP地址
  1. 先配置VM的IP地址,先点击编辑,选择里面的虚拟网路编辑器在这里插入图片描述
  2. 选择VMnet8
    在这里插入图片描述
  3. 点击更改设置,然后再次点击VMnet8,更改一些配置,点击NAT设置
    在这里插入图片描述
    在这里插入图片描述
  4. 接下来就是更改win10的配置,点击右下角的网络

在这里插入图片描述

  1. 再选择更改适配器选项
    在这里插入图片描述
  2. 选择VMnet8右键点击属性进行设置
    在这里插入图片描述
  3. 选择相关配置
    在这里插入图片描述
  4. 配置相关配置
    在这里插入图片描述
  5. 右键打开终端
    在这里插入图片描述
  6. su root 命令进入root用户下
    在这里插入图片描述
  7. 输入vim /etc/sysconfig/network-scripts/ifcfg-ens33这个命令行,进入文件进行修改
    在这里插入图片描述
  8. 修改主机名称映射,vim /etc/hosts命令,将地址放进去
    在这里插入图片描述
  9. 然后重启
第四步使用Xshell访问
  1. 因为服务器肯定放在机房使用,所以办公人员需要使用远程访问

  2. 安装Xshell(自行安装,百度上一堆)

  3. 打开Xshell文件,点击新建
    在这里插入图片描述

  4. 写入主机IP地址
    在这里插入图片描述

  5. 点击用户身份验证,填写用户和密码

在这里插入图片描述
6. 接受并保存,就可以了
在这里插入图片描述

安装软件包

  1. 首先先要安装安装 epel-release,打开终端,输入命令yum install -y epel-release
  2. 等下载完成之后,需要将系统的jdk删除,rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps
  3. 关闭防火墙 systemctl stop firewalld,关闭防火墙开机自启 systemctl disable firewalld.service
  4. 配置 本地用户具有 root 权限,方便后期加 sudo 执行 root 权限的命令,使用命令修改vim /etc/sudoers
    在这里插入图片描述
  5. 在/opt 目录下创建文件夹,并修改所属主和所属组
mkdir /opt/module
mkdir /opt/software
chown 本地用户:本地用户 /opt/module
chown 本地用户:本地用户 /opt/software
  1. 最后重启虚拟机

安装JDK

  1. 用 XShell 传输工具将 JDK 导入到 opt 目录下面的 software 文件夹下面
    在这里插入图片描述
  2. 在 Linux 系统下的 opt 目录中查看软件包是否导入成功,通过命令ls /opt/software/
  3. 解压 JDK 到/opt/module 目录下,压缩命令tar -zxvf jdk-8u212-linuxx64.tar.gz -C /opt/module/
  4. 配置 JDK 环境变量,需要切换到root用户,使用命令cd /etc/profile.d,查看发现都是启动配置类,所以我们也需要写一个
    在这里插入图片描述
  5. 使用exit 退出 root用户,使用命令sudo vim /etc/profile.d/my_env.sh写配置类,并且在配置类配置如下配置
    在这里插入图片描述
  6. 保存后退出,然后使用命令source /etc/profile,让新的环境变量 PATH 生效
  7. 使用命令reboot进行重启

安装Hadoop

  1. 操作跟上面一样,就是配置类的配置不一样,配置类需要配置的如下图
    在这里插入图片描述

Hadoop的运行模式

  1. Hadoop的运行模式官网上说主要有3种,第一种为本地模式,第二种为伪分布式模式,第三种为完全分布式模式
    • 本地模式:就是相当于单机运行
    • 伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模拟一个分布式的环境。
    • 完全分布式模式:多台服务器组成分布式环境。

本地运行模式

  1. 现在hadoop-3.1.3文件下创建一个wcinput文件夹,mdkir wcinput
    在这里插入图片描述

  2. 在wcinput文件下创建一个word.txt文件,cd wcinput
    在这里插入图片描述

  3. 编辑word.txt文件vim word.txt
    在这里插入图片描述

  4. 回到hadoop目录

  5. 演示一下,统计之前编辑文档中名字的次数,使用命令bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ wcoutput
    在这里插入图片描述

  6. 进入到之前命令创建的文件中wcoutput,使用命令cat part-r-00000进行查看
    在这里插入图片描述

完全分布式运行模式

准备环境:

  • 准备三台客户机(关闭防火墙,静态IP,主机名称)
  • 安装JDK
  • 配置环境变量
  • 安装Hadoop
  • 配置环境变量
  • 配置集群
  • 单点启动
  • 配置ssh
  • 群起并测试集群

编写集群分发脚本xsync

  1. scp安全拷贝:scp可以实现服务器与服务器之间的数据拷贝
    • 基本语法:scp -r p d i r / pdir/ pdir/fname u s e r @ user@ user@host: p d i r / pdir/ pdir/fname(命令 -r 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/文件名称)
  2. 实践开始,把 hadoop102 服务器上的 jdk 和 hadoop 传递到 hadoop103 和 hadoop104 上
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述在这里插入图片描述

  1. 以上三台服务器都有JDK和Hadoop的包

rsync远程同步工具

  1. 何为rsync主要用户备份和镜像,具有速度快,避免复制相同内容和支持符号链接的优点,而跟scp的区别在于,rsync只对有差异的文件做更新,而scp是把所有文件都复制过去
  2. 基本语法:rync -av p d i r / pdir/ pdir/fname u s e r @ user@ user@host: p d i r / pdir/ pdir/fname(命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称)

xsync集群分发脚本

  1. 能够循环复制文件到所有节点的相同目录下,相当于备份和同步

  2. 脚本实现,首先在一个目录下创建XSYNC文件(目录我的是/home/lwb/bin)
    在这里插入图片描述

  3. 在文档中写下如下代码


#!/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

在这里插入图片描述

  1. 修改脚本XSYNC具有的执行权限chmod +x xsync
  2. 测试脚本xsync /home/atguigu/bin
  3. 将脚本复制到/bin中,以便全局调用 sudo cp xsync /bin/
  4. 同步环境变量配置 sudo ./bin/xsync /etc/profile.d/my_env.sh
  5. 然后到各自的服务器上使用命令source /etc/profile让环境变量生效

SSH无密码登录配置

  1. 先来看看无密码登陆的原理图
    在这里插入图片描述
  2. 然后进行实践,使用命令生成公钥和私钥,ssh-keygen -t rsa
    在这里插入图片描述
  3. 然后将公钥拷贝到需要免密登录的服务器上
    在这里插入图片描述
  4. 对于文件功能解释
    在这里插入图片描述
  5. 如何配置ssh,只需要ssh 主机
    在这里插入图片描述
  6. 使用exit就能退出

集群配置

  1. 首先我们配置了三台服务器,但是他们三者之间并没有关联,所以我们需要将三者关联起来,这个时候就需要像之前讲的一样,配置NameNode,SecondaryNameNode和ResourceManager,如下图所示
    在这里插入图片描述
  2. 然后就是配置文件的说明,Hadoop的配置文件分为两大类:一类是默认配置文件,一类是自定义配置文件,只有用户修改某一默认配置值得时候,才需要修改自定义配置文件。

在这里插入图片描述

  1. 自定义配置文件为core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 这四个配置文件,他们存放在hadoop目录下的/etc/hadoop路径下,用户可以根据项目需求重新进行修改配置。
    在这里插入图片描述
  2. 进入文件夹之后就可以配置了,vim core-site.xml
    在这里插入图片描述
<configuration>
 <!-- 指定 NameNode 的地址 -->
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://hadoop102:8020</value>
 </property>
 <!-- 指定 hadoop 数据的存储目录 -->
 <property>
 <name>hadoop.tmp.dir</name>
 <value>/opt/module/hadoop-3.1.3/data</value>
 </property>
 <!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
 <property>
 <name>hadoop.http.staticuser.user</name>
 <value>atguigu</value>
 </property>
</configuration>
  1. 配置hdfs-site.xml文件在这里插入图片描述
<configuration>
<!-- nn web 端访问地址-->
<property>
 <name>dfs.namenode.http-address</name>
 <value>hadoop102:9870</value>
 </property>
<!-- 2nn web 端访问地址-->
 <property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>hadoop104:9868</value>
 </property>
</configuration>
  1. 配置yarn-site.xml文件
    在这里插入图片描述
<configuration>
	 <!-- 指定 MR 走 shuffle -->
	 <property>
		 <name>yarn.nodemanager.aux-services</name>
		 <value>mapreduce_shuffle</value>
	 </property>
	 <!-- 指定 ResourceManager 的地址-->
	 <property>
		 <name>yarn.resourcemanager.hostname</name>
		 <value>hadoop103</value>
	 </property>
	 <!-- 环境变量的继承 -->
	 <property>
		 <name>yarn.nodemanager.env-whitelist</name>
		<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
		NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
		RED_HOME</value>
	 </property>
</configuration>
  1. 配置MapReduce配置文件
    在这里插入图片描述
<!-- 历史服务器端地址 -->
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>hadoop102:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop102:19888</value>
</property>
  1. 使用命令xsync /hadoop/,复制到其他服务器
  2. 配置workers,在/etc/hadoop文件下进行编辑vim workers

在这里插入图片描述

  1. 使用命令xsync workers进行同步

  2. 现在开始启动集群,启动集群的命令在sbin目录下,所以我们需要到hadoop 3.1.3目录下在这里插入图片描述

  3. 首先使用命令sbin/start-dfs.sh启动服务,使用jps命令进行查看
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 然后还需要启动nodemanger节点,我们需要在hadoop103上启动,因为我们配置yarn在hadoop103上,使用命令sbin/start-yarn.sh,启动完毕后,同样使用jps进行查看
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  5. 配置完成之后,登录http://192.168.10.103:8088/http://192.168.10.102:9870/这两个网址,就会有指定的页面
    在这里插入图片描述
    在这里插入图片描述

  6. 随后我们测试一下

  7. 首先执行命令hadoop fs -mkdir /wcinput ,会发现在网页上有显示 在这里插入图片描述
    在这里插入图片描述

  8. 然后测试上传一个小的文件,使用命令hadoop fs -put wcinput/word.txt /wcinput
    在这里插入图片描述

在这里插入图片描述

  1. 执行wordcount程序进行计算任务,来看一下 ,使用命令hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput在这里插入图片描述
    在这里插入图片描述

配置历史服务器

  1. 上面我们运行起来了hadoop集群,并且通过hadoop集群完成了计算任务,但是我们并不能查看,yarn的历史记录,所以我们这一步就来配置历史服务器。
    在这里插入图片描述
  2. 进入到/etc/hadoop 配置文件夹,使用命令vim mapred-site.xml修改配置类,将下面代码复制进去。
<!-- 历史服务器端地址 -->
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>hadoop102:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>hadoop102:19888</value>
</property>

在这里插入图片描述

  1. 然后进行分发配置 xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
    在这里插入图片描述
  2. 然后在hadoop102 上启动历史服务器mapred --daemon start historyserver
  3. 使用命令jps查看是否启动了
    在这里插入图片描述
  4. 登录网页http://192.168.10.102:19888/jobhistory,进行查看
    在这里插入图片描述
  5. 历史服务器是配置完了,但是日志到底聚集到哪里看比较好呢,当然是存储到HDFS伤了,所以为了能够更好将日志信息上传到HDFS上,我们也需要配置
  6. 这一次我们需要修改的是yarn-site.xml配置文件,将下面代码复制进去
<!-- 开启日志聚集功能 -->
<property>
 <name>yarn.log-aggregation-enable</name>
 <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property> 
 <name>yarn.log.server.url</name> 
 <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
 <name>yarn.log-aggregation.retain-seconds</name>
 <value>604800</value>
</property>

在这里插入图片描述

  1. 将文件分配到各个服务器上xsync yarn-site.xml
  2. 因为更改了yarn-site.xml的配置所以需要重启NodeManager, ResourceManager, HistoryServer
    • mapred --daemon stop historyserver停止历史服务器
    • sbin/stop-yarn.sh停止NodeManager, ResourceManager
  3. 将上面的测试再尝试一下

编写Hadoop常用脚本

  • 将脚本配置完成之后,使用命令xsync进行分发到其他集群服务器上

编写Hadoop集群启动和停止脚本:myhadoop.sh

  1. 使用命令cd回到根目录,然后进入bin目录下,使用命令vim myhadoop.sh创建脚本
  2. 输入如下代码
#!/bin/bash
if [ $# -lt 1 ]
then
 echo "No Args Input..."
 exit ;
fi
case $1 in
"start")
 echo " =================== 启动 hadoop 集群 ==================="
 echo " --------------- 启动 hdfs ---------------"
 ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
 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

在这里插入图片描述

  1. 然后给予这个脚本执行权限,使用命令chmod +x myhadoop.sh
    在这里插入图片描述

查看三台服务器JAVA进程脚本:jpsall

  1. 一样的操作,使用命令编辑脚本vim jpsall
#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
do
 echo =============== $host ===============
 ssh $host jps 
done
  1. 保存之后,赋予脚本执行权限

常用端口号说明

在这里插入图片描述

总结

用了一周的时间,才完成了入门,跟着尚硅谷的视频进行学习,都是一步一步敲的,出现错误的时候,多看视频几遍,虽然没有用,但是可以加深印象,一般解决都是自己有些点遗漏了,所以需要仔细和细心。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值