大数据框架Hadoop入门

本文介绍了大数据的基本概念和特点,重点关注Hadoop框架,详细阐述了Hadoop的起源、版本、优势及其在大数据生态中的作用。同时,通过逐步指导如何搭建Hadoop运行环境,包括本地模式、伪分布式和完全分布式,帮助读者掌握Hadoop的运行模式和操作。最后,提到了Hadoop编译源码的重要性,并列举了一些常见错误和解决方案。
摘要由CSDN通过智能技术生成

1. 大数据概论

1.1 大数据概念

在这里插入图片描述
常规软件指的是JAVAEE, MYSQL, SSM等这些技术 MYSQL只能存储500-1000W条数据, 再多的话检索效率特别慢. 大数据可以存储并处理亿级以上的数据
谈谈对大数据的理解, 海量数据的存储和海量数据的分析计算,简称存数据和检索数据
在这里插入图片描述

1.2 大数据特点(4V)

在这里插入图片描述
数据量非常大
在这里插入图片描述
数据产生的速度非常快
在这里插入图片描述
数据具有多样性
在这里插入图片描述

1.3 大数据应用场景

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

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

1.4 大数据部门业务流程分析

在这里插入图片描述

1.5 大数据部门组织结构(重点)

在这里插入图片描述

2. 从Hadoop框架讨论大数据生态

2.1 Hadoop是什么

在这里插入图片描述

2.2 Hadoop发展历史

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

2.3 Hadoop三大发型版本

在这里插入图片描述
学习时使用Apache版本, 但是公司一般使用Cloudera版本 也成为CDH版本. Apache版本对各个软件的版本兼容性需要自己核对并使用兼容版本. CDH版本是收费的, 但是Hadoop, Hbase, 等等软件都是统一的版本
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 Hadoop的优势(4高)

在这里插入图片描述
高可靠性: Hadoop内部维护了3个副本
高扩展性: 可以支持不宕机的动态扩展和下线

2.5 Hadoop组成(面试重点)

Hadoop1.X和Hadoop2.X的区别
在这里插入图片描述
MapReduce在1.x版本当中需要进行计算以及资源调度(分配CPU,内存等), 2.x版本中新增了YARN来做资源调度

2.5.1 HDFS架构概述

在这里插入图片描述

2.5.2 YARN框架概述

在这里插入图片描述

2.5.3 MapReduce架构概述

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

2.6 大数据技术生态体系

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

2.7 推荐系统框架图

在这里插入图片描述

3. Hadoop运行环境搭建(开发重点)

3.1 虚拟机环境准备

在这里插入图片描述

3.2 安装JDK

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

3.3安装Hadoop

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

3.4 Hadoop目录结构

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

4. Hadoop运行模式

在这里插入图片描述

4.1 本地运行模式

4.1.1 官方Grep案例

在这里插入图片描述
该案例的作用是, 统计input文件夹下我们的配置文件中, 满足我们输入的正则表达式的字符串的个数和字符串

第一步 在hadoop文件夹下创建一个input文件夹, 这是因为每一个hadoop都需要一个输入文件夹一个输出文件夹,目前我们创建了输入文件夹
第二步 把当前文件夹下的etc/hadoop/*.xml 拷贝到input下
第三步 执行share目录下的example程序, 指定要跑的程序是grep. 并指定一个输入input 一个输出output 文件夹 最后是一个正则… 这个output文件夹执行这个命令之前必须没有被创建, 否则会报异常
第四步 查看输出结果_SUCESS的大小是0, 它的意义就是告知我们本次执行成功或失败
在这里插入图片描述
查看part-r-00000
在这里插入图片描述
可以看到满足我们之前设置的正则的字符串输出到了该文件中

如果output已经存在了, 我们再运行程序会报错
在这里插入图片描述

4.1.2 官方WordCount案例

在这里插入图片描述
编辑wc.input文件是做数据的步骤, 要统计的world的个数就在这里面
在这里插入图片描述
执行程序时, 指定程序时wordcount 并指定输入输出文件夹

4.2 伪分布式运行模式

4.2.1 启动HDFS并运行MapReduce程序

在这里插入图片描述
在这里插入图片描述
使用分布式配置的时候, 必须指定hadoop-env.sh中的JAVA_HOME否则其他节点无法调用本节点.
见到env文件就要想着进去修改JAVA_HOME

在这里插入图片描述
配置完fs.defaultFS后, 本地运行模式就不能启动了, 这是因为本地运行模式的这个配置默认值是file:///, 这是用的file协议直接找的本地. 而伪分布式和完全分布式都用的是hdfs协议.
修改hadoop.tmp.dir, 如果不修改的话, 默认值是/tmp/hadoop-${user.name}路径下
注意如果用一台服务器搭建伪分布式的话, 需要把fs.defaultFS的值换成hdfs://localhost:9000, 要不然连接不上
在这里插入图片描述
默认值是3, 每个数据有3个副本. 我们使用伪分布式时,本身就是一台机器, 如果这里配置成3的话, 其实在本机也只保存一份文件, 3的意思是等到连接上集群了, 再别的节点上新增副本, 最多3份数据
在这里插入图片描述
如果是第二次格式化, 需要先删除data下的tmp临时文件与所有日志, 要不然都会格式化失败
如果我们配置了临时文件路径, 那就在配置的路径中, 日志文件在hadoop的路径的logs目录下
第二次格式化NameNode的步骤:
先停止NameNode和DataNode
删除data目录和logs目录
格式化NameNode再重新启动
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
如果是第二次格式化, 需要先删除data下的tmp临时文件与所有日志, 要不然都会格式化失败
如果我们配置了临时文件路径, 那就在配置的路径中, 日志文件在hadoop的路径的logs目录下
第二次格式化NameNode的步骤:
先停止NameNode和DataNode
删除data目录和logs目录
格式化NameNode再重新启动
在这里插入图片描述

在这里插入图片描述
运行mapreduce程序时, 直接写路径, 因为配置了文件存储在hdfs中, 就会去hdfs中找到文件, 同样, 输出也要输出到hdfs中
在这里插入图片描述
在这里插入图片描述

4.2.2 启动YARN并运行MapReduce程序

在这里插入图片描述
在这里插入图片描述
yarn目前最重要的两个组件NodeManager(单个节点的老大)与ResourceManager(所有节点的老大)
nodemanager 设置为MR的shuffle(洗牌模式)
在这里插入图片描述
mapreduce.framework.name默认是local本地, 我们把它改成yarn
在这里插入图片描述

在这里插入图片描述
8088端口yarn的web端, 查看mapreduce运行的程序, 查看mapreduce的进程
在这里插入图片描述
点击history查看历史记录会报错, 因为我们还没有启动历史服务进程

4.2.3 配置历史服务器

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

4.2.4 配置日志的聚集

在这里插入图片描述
在历史记录服务中点击logs, 能查看运行该MR job的所有日志信息

在这里插入图片描述
结束每个进程后都用jps命令查看一下是否真正关闭掉了
关闭历史服务
sbin/mr-jobhistory-daemon.sh stop historyserver
关闭nodemanager
sbin/yarn-daemon.sh stop nodemanager
关闭resourcemanager
sbin/yarn-daemon.sh stop resourcemanager
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2.5 配置文件说明

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

4.3 完全分布式运行模式(开发重点)

在这里插入图片描述

4.3.1 虚拟机准备

与3.1一样, 一共配置4台hadoop001~hadoop004

4.3.2 编写集群分发脚本xsync

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

远程同步工具rsync

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

编写xsync脚本

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

4.3.3 集群配置

在这里插入图片描述
HDFS的NameNode和SecondaryNameNode要求不在一台节点上, 因为NameNode和SecondaryNameNode都是很耗费内存的
YARN的ResourceManager也是很耗费内存的, 所以它要避开HDFS的NameNode和SecondayNameNode
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3.4 集群单点启动

需要先删除每台节点上的data和logs文件夹.
注意: 先格式化NameNode后hadoop namenode -format
我们没有配置ssh, 所以只能单独启动, 配置完ssh后就可以用一个命令启动集群了
下面是单独启动的命令. 先不用!

在这里插入图片描述
在这里插入图片描述
web端使用namenode所在节点的ip+端口进行访问
在这里插入图片描述

4.3.5 SSH无密登录配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
.ssh目录在/home/${user}/.ssh目录
在这里插入图片描述
本身在102, 但是还是要执行ssh-copy-id hadoop102一遍. 其实在我们本机, 使用ssh hadoop102 也是需要输入密码的
在这里插入图片描述
目前我们配置了atguigu账号在其他节点上的免密登录. 还需要配置root用户在其他节点上的免密登录
切换到root用户su root
在/root/.ssh目录下执行上述命令, 生成公钥私钥并发送到包括本机的三个节点上

4.3.6 群起集群

在这里插入图片描述
启动hdfs集群
在这里插入图片描述
启动yarn集群, 需要去指定的resourcemanager节点上去启动, 去其他节点上启动会报错
在这里插入图片描述
在这里插入图片描述

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

4.3.7 集群启动/停止方式总结

在这里插入图片描述

4.3.8 集群时间同步ntpd

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

4.3.9 crontab定时任务

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

5. Hadoop编译源码(面试重点)

5.1 前期准备工作

需要准备一个64位的CentOS, 编译源码可以使Hadoop变成64位的程序, 并且还可以自定义的加入一些功能
在这里插入图片描述

5.2 jar包安装

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

5.3 编译源码

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

6. 常见错误及解决方案

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值