大数据技术

一. 大数据发展史

        我们使用的各种大数据技术,最早起源于Google当年公布的三篇论文,Google FS(2003年)、MapReduce(2004年)、BigTable(2006年),其实Google当时并没有公布其源码,但是已经把这三个项目的原理和实现方式在公布的论文中详细的描述了,这几篇论文面世后,就引爆了行业的大数据学习和研究的浪潮。

        随后一个叫 Doug Cutting 的技术大牛(也就是写 Lucene 的那位,做JAVA的同学应该都很熟悉)就开始根据Google公布的论文去开发相关系统,后来慢慢发展成了现在的 Hadoop,包括 MapReduce 和 HDFS。

        但是在当时,使用 MapReduce 进行数据分析和应用还是有很大门槛的,毕竟要编写 Map 和 Reduce 程序。只能大数据工程师上马,普通BI分析师还是一脸懵逼。所以那个时候都是些大公司在玩。

        既然有这么大门槛,就会有人勇于站出来去解决门槛,比如 Yahoo,他们开发一个叫做 Pig 的东西,Pig是一个脚本语言,按照Pig的语法写出来的脚本可以编译成 MapReduce 程序,然后直接在 Hadoop 上运行了。

        这个时候,大数据开发的门槛确实降了一点。

        不过,Pig大法虽好,但还是需要编写脚本啊,这还是码农的活儿啊。人们就在想,有没有不用写代码的方法就能做大数据计算呢,还真有,这个世界的进步就是由一群善于思考的“懒人”推动的。

        于是,Facebook公司的一群高智商家伙发布了一个叫做 Hive 的东西,这个 Hive 可以支持使用 SQL 语法直接进行大数据计算。原理其实就是,你只需要写一个查询的 SQL,然后 Hive 会自动解析 SQL 的语法,将这个SQL 语句转化成 MapReduce 程序去执行。

        这下子就简单了,SQL 是BI/数据分析师们最为常用的工具了,从此他们可以无视码农,开开心心的独立去写Hive,去做大数据分析工作了。Hive从此就火爆了,一般公司的大多数大数据作业都是由Hive完成的,只有极少数较为复杂的需求才需要数据开发工程师去编写代码,这个时候,大数据的门槛才真真的降低了,大数据应用也才真正普及,大大小小的公司都开始在自己的业务上使用了。

        但是,人们的追求不止如此,虽然数据分析便利了,但是大家又发现 MapReduce 程序执行效率不够高啊,其中有多种原因,但有一条很关键,就是 MapReduce 主要是以磁盘作为存储介质,磁盘的性能极大的限制了计算的效率。

        在这个时候,Spark 出现了,Spark 在运行机制上、存储机制上都要优于 MapReduce ,因此大数据计算的性能上也远远超过了 MapReduce 程序,很多企业又开始慢慢采用 Spark 来替代 MapReduce 做数据计算。

        至此,MapReduce 和 Spark 都已成型,这类计算框架一般都是按“天”为单位进行数据计算的,因此我们称它们为“大数据离线计算”。既然有“离线计算”,那就必然也会有非离线计算了,也就是现在称为的“大数据实时计算”。

        因为在数据实际的应用场景中,以“天”为颗粒出结果还是太慢了,只适合非常大量的数据和全局的分析,但还有很多业务数据,数据量不一定非常庞大,但它却需要实时的去分析和监控,这个时候就需要“大数据实时计算”框架发挥作用了,这类的代表有:Storm、Spark Streaming、Flink 为主流,也被称为 流式计算,因为它的数据源像水流一样一点点的流入追加的。

        当然,除了上面介绍的那些技术,大数据还需要一些相关底层和周边技术来一起支撑的,比如 HDFS 就是分布式文件系统,用于负责存储数据的,HBase 是基于HDFS的NoSQL系统、与 HBase类似的还有 Cassandra也都很热门。

 

二. 大数据技术架构

大数据平台基础:

  • MapReduce,分布式离线计算框架

  • Spark,分布式离线计算框架

  • Storm,流式实时计算框架

  • Spark Streaming,流式实时计算框架

  • Flink,流式实时计算框架

  • Yarn,分布式集群资源调度框架

  • Oozie,大数据调度系统

分布式文件系统:

  • HDFS,分布式文件系统

  • GFS,分布式文件系统

SQL引擎:

  • Spark SQL (Shark),将SQL语句解析成Spark的执行计划在Spark上执行

  • Pig,Yahoo的发布的脚本语言,编译后会生成MapReduce程序

  • Hive,是Hadoop大数据仓库工具,支持SQL语法来进行大数据计算,把SQL转化MapReduce程序

  • Impala,Cloudera发布的运行在HDFS上的SQL引擎

数据导入导出:

  • Sqoop,专门用将关系数据库中的数据 批量 导入导出到Hadoop

  • Canal,可以 实时 将关系数据库的数据导入到Hadoop

日志收集:

  • Flume,大规模日志分布式收集

大数据挖掘与机器学习:

  • Mahout,Hadoop机器学习算法库

  • Spark MLlib,Spark机器学习算法库

  • TensorFlow,开源的机器学习系统


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值