大数据

什么是大数据,实实在在的说大学快上完了我真的没有搞清楚什么是大数据,学大数据是用来干什么的,学大数据到底学什么,如何学好大数据,如今面临着找工作我才想起来恍恍惚惚已经四年这样碌碌无为的过去了,我在大数据这个问题上到现在还是问号没有变成句号,看了很多大佬的解说,各抒己见。

什么是大数据?

指不能够在指定的时间内使用常规的软件工具进行挖掘、分析以及处理的大型数据集合。通俗讲:

·拥有海量的数据

·对海量数据的挖掘分析数据需求

·使用什么工具对海量数据进行挖掘分析

大数据解决的问题

大数据解决了海量数据的存储,查询以及数据的综合分析,了解用户的兴趣爱好,挖掘出共同的特点,挖掘出隐含的价值信息。比如:很多平台会根据自生的日常爱好特点,给你制定你自己的一个范围爱好。例如你刷视频,今明天刷一样类型的视频,渐渐的这类视频将在你打开时自动呈现出来,屏蔽了一些其他的视频。

学习大数据必须掌握的内容
海量数据的存储

Hdfs、Hive、Hbase、Es

hdfs(分布式文件系统):实现将文件分布在很多的服务器之上

hdfs的工作原理:

1、客户将文件存入hdfs中,hdfs会将其进行切块处理,然后分散到很多台的linux机器系统中(data node——>主要负责存储文件的角色)

2、切块之后必须要有一个记录用户的每一个文件切块信息的机制(name node ——>主节点)

3、为了安全起见,hdfs可以将每个文件块在集群中存放到多个副本中(副本的多少由客户端决定)

海量数据的分析和处理

MapReduce、Spark、SQL

MapReduce(分布式运算编程框架——分而治之思想)

Map:主要负责分的任务

·数据的规模相对于原任务要大大的缩小

·要选择就近原则,将任务要分配到存放着所需数据的节点上计算

·使的这些分后的小任务之间能够并行计算,彼此之间几乎不存在依赖的关系

Reduce:是对map的阶段的结果进行汇总处理

对Map过程中输出的键值对(k;

v)进行合并处理,后reduce传入中间结果列表数据进行某种处理,最终输出(k1;v1)

海量数据的(MapReduce)分析调度资源

YARN(分布式资源调度平台):帮助用户协调大量的运算资源,是一个资源管理、任务调度的框架。主要模块:RM、NM、AM

RM(ResourManager)负责所有资源的监控、分配和管理

NM(NodeManager)负责每一个节点的维护

AM(ApplicationMaster)负责每一个具体应用程序的调度和协调

YARN的特征

· yarn 并不清楚用户提交的程序的运行机制

· yarn 只提供运算资源的调度(用户程序向 yarn 申请资源,yarn 就负责分配资源)

· yarn 中的主管角色叫ResourceManager

· yarn 中具体提供运算资源的角色叫 NodeManager

· yarn 与运行的用户程序完全解耦,意味着 yarn 上可以运行各种类型的分布式运算程序

· spark、storm 等运算框架都可以整合在 yarn 上运行,只要他们各自的框架中有符合 yarn 规范的资源请求机制即可

· yarn 成为一个通用的资源调度平台,提高资源利用率,方便数据共享

学好Hadoop=学好了大数据

Hadoop主要核心组成:(HDFS——>文件系统 +MapReduce——>编程框架 +YARN——>资源调度平台)