首页 > 编程知识 正文

hadoop四大框架,hadoop大数据开发实战pdf

时间:2023-05-06 17:06:06 阅读:165600 作者:3809

1 .大数据概论1.1大数据概念

普通的软件是指,JAVAEE、MYSQL、SSM等技术MYSQL只能存储500-1000W的数据,否则检索效率会特别低。 大数据可以存储和处理亿级以上的数据

了解大数据、保存海量数据、分析计算海量数据,简称保存数据和检索数据

1.2大数据特征(4V ) )。

数据量非常大

数据生成速度非常快

数据具有多样性

1.3大数据应用场景

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

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

2 .从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都需要输入和输出文件夹。 目前正在创建输入文件夹

步骤2 (将当前文件夹下的etc/hadoop/*.xml复制到input下

步骤运行share目录下的example程序,指定要运行的程序是grep .并指定输入input输出output文件夹最后是正则的…此output文件夹在运行此命令之前如果未创建,则将报告异常

在步骤4中,确保输出结果_SUCESS的大小为0。 这意味着告知这次执行的成功或失败

查看部件号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表示等待连接到群集,然后向另一个节点添加副本,最多可以存储三个数据

对于第二种格式,必须删除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. 常见错误及解决方案




版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。