大数据技术入门之分布式处理、并行处理和MapReduce

什么是大数据?

百度百科解释为:

“是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。”

有点高级有点绕。简化一下,大数据就是拥有很高价值不能轻易被推倒(咳)处理的数据集合。就像你要去打一个数据究极体的boss,你需要带上最好的剑,翻过最高的山,闯进深的森林。boss挂了,自然你获得的经验值也是最高的。

那么这个数据究极体该如何打呢?
战术打击: 分布式处理 distributed processing & 并行处理 Parallel processing

上理论:

分布式处理则是将不同地点的,或具有不同功能的,或拥有不同数据的多台计算机通过通信网络连接起来,在控制系统的统一管理控制下,协调地完成大规模信息处理任务的计算机系统。
并行处理是利用多个功能部件或多个处理机同时工作来提高系统性能或可靠性的计算机系统,这种系统至少包含指令级或指令级以上的并行。”

理论不想看,那上图:
大数据技术入门之分布式处理、并行处理和MapReduce_第1张图片
嗯?图也不想看?

那你只好听我粗鄙的类比了。就像上面咱说过的,把大数据看做是一个数据究极体大boss。那勇士要如何击倒boss救公主呢?关键一招:影分身之术!打过boss的人都知道,单枪匹马不如团体作战。团队中需要有抗怪的肉盾,开大的法师,远攻的射手,控怪的辅助,当然必须要带上奶妈。为了让大boss爆出价值这一目标,不同技能同时输出,妙啊。看到这里,你是不是对大数据的分布式处理,与并行处理稍微有些感觉了呢?

好了,战术知道了。下一步,该挑武器了,打怪总不能靠空手接白刃吧。

数据处理:Hive,Pig,H·Base,hadoop MapReduce
数据管理:HDFS
资源管理:YARN

具体的解释与差异,网上可以搜到很多详细介绍,此处不赘述。

需要一提的是:Apache Spark

  1. 专为大规模数据处理而设计的快速通用的计算引擎
  2. 类Hadoop MapReduce的通用并行框架
  3. 拥有Hadoop MapReduce所具有的优点
  4. Job中间输出结果可以保存在内存中,从而不再需要读写HDFS
  5. Spark 是在 Scala 语言中实现的,将 Scala 用作其应用程序框架

上文好像反复提到了一个概念,MapReduce 这“地图减少”又是个什么?

上理论:

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)“和"Reduce(归约)”,是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

这可真是太长了。我来划一下重点:

  • MapReduce是一种编程模型
  • Map(映射);Reduce(归约)
  • 不需要掌握分布式并行编程,但是可以将程序运行在分布式系统上
  • Map(映射)函数:把一组 键值对 映射成 一组 新的键值对
  • Reduce(归约)函数:保证 所有 映射的键值对中的 每一个 共享 相同的 键组

看图:
大数据技术入门之分布式处理、并行处理和MapReduce_第2张图片
是不是稍微有点概念了呢?

第一篇博客先写到这吧~ (●´∀‘●)
Good Good Study
Day Day No Hair
与大家共勉!

你可能感兴趣的:(Big,Data,Technology,mapreduce,大数据,spark,hadoop)