大数据总体介绍

1.大数据概念

1.1 什么是大数据

大数据顾名思义就是大量的数据,一般这些数据都是PB级以上。这些数据的特点是种类多(有视频啊,图片啊,文字啊,语音啊等),数据量大(PB级以上,1EB=1024PB,1PB=1024T,1T=1024G),需要快速处理(后面会介绍分布式处理技术),有价值(没有价值的事没人会干)。

面对这么多数据,使用常规技术就没法处理了,于是产生了大数据技术,也就是接下来我们要学的。

1.2 大数据产生背景,以及现状

以前是PC端(电脑)时代,上网的还不是很多,信息也没现在这么爆炸,所以还没这么多数据量。记得从我上高中的时候,也就是2010年,安卓机才开始热卖,也就是从那一年起,移动互联网高速发展,什么微信啊,QQ啊,你一言我一语,数据就产生了。然后现在最火的是短视频,直播,还有今日头条,公众号什么的。 短视频我观察了下,快手是2011年成立,可以说跑在了智能机最前线,但是那个时候还是3G时代,4G是在2012年开始建设,2013年建设完毕。抖音是在2016年出来,由于推广力度很大,当时我看地铁里面就很多他们的广告,所以很多人都在用,说了这么多,短视频的特点是人人都可以上传视频,属于自媒体,这样就产生了大量的视频数据。今日头条同理也是人人可以发布内容。 直播观众量大,有的大主播开播都几千万人在看,这也是很大一部分数据。很多公众号几十万粉丝,这个也得处理好。 还有自从有了智能机,人们拍照也方便了,随手拍了发布到网上,这个导致了图片数据暴增。

大数据从20世纪90年代开始萌芽,经历了萌芽,突破,成熟。知道2013年开始像商业,科技,医疗,农业,政府,教育,经济,交通应用。 国家从2016年才正式确立大数据的发展,也就是这一年大学才开设大数据课程。

1.3 大数据都有哪些应用?

笼统的话,上面已经介绍了,什么医疗,交通,农业啊。我这里只说下具体的。

大数据推荐:(比如我们平时浏览今日头条,UC浏览器会有一个推荐专栏,里面看到的都是我们平时搜索查看的内容,这个就是根据用户的操作行为进行推荐的)

大数据分析:(举个例子:之前去的牙齿矫正科,进行口扫时,会自动根据你的牙齿生成矫正方案,那些方案是根据之前的很多病例的相似度进行分析匹配,然后得出的。)

智慧交通:(这个没接触过)

大数据存储:(这个就是如何存数据,后面学了就知道了,上面说的是根据数据做的一些事情。)

2.都有哪些大数据技术

大数据分成了很多派系,其中最著名的是Apache Hadoop,Clouera CDH和 Hortonworks 派系。 Apache属于原生的派系,由于它是开源的,很多人开发,导致版本管理很混乱,BUG也挺多的。然后就有了专门的Hadoop提供商Clouera CDH和 Hortonworks。Clodera是老牌的提供商,提供定制化和培训服务。Hortonworks是后来新兴的提供商,提供免费的产品,但是培训是要钱的。Apache Hadoop一般适用于学习的时候用,因为毕竟免费不需要看版权吧。到了企业,Clodera CDH相对多一些。 接下来就介绍下Apache Hadoop和Clodera CDH生态系统。

2.1 Apache Hadoop

Apache Hadoop生态图

Mdct0O.png

从上图可以看到用到的技术有:

  • HDFS( Hadoop Distributed File System ):这是一个Hadoop分布式文件系统,可以将文件拆分成很多块分不到不同机器上,这样就解决了文件太大存储问题。另外HDFS可以组织多台备份服务器(进行故障转移),这样就做到了高可用,高扩展,高存储。

  • MapReduce:这是一个分布式计算框架。MapReduce分为Map和Reduce两部分,Map是将数据映射成key,value形势,Reduce对映射的数据进行统计。大数据强调的是计算向数据移动,因为数据很大,移动会耗费IO,而移动计算程序相对就容易多了,所以在计算的时候它会移动到待计算机器上,然后并行执行计算。

  • Hive:这是一个数据仓库工具。它的作用是将SQL转换为MapReduce计算任务。为懂SQL,却不懂MapReduce的提供了方便。

  • Pig:这个和上面的Hive一样,也是操作MapReduce的,不过它使用的是特定脚本。

  • Spark:这个和MapReduce一样,也是一个计算框架,但是不同的是它是基于内存进行计算的,速度快了很多。

  • Tez:这个不说了,也是计算用的,但是基本淘汰了。

  • Yarn:这是一个资源管理平台。负责给计算框架(比如MapReduce,Spark...)分配资源。

  • Mahout:提供机器学习的一些算法实现。

  • HBase:非结构化数据库。它是一个面向列的,负责存储数据。它是基于HDFS和MapReduce实现的。方便了快速定位查询数据。

  • sqoop:是一个开源的工具,可以将关系型数据库(mysql,sqlserver,oracle...)导入到hadoop的hdfs里面,同时也可以将hdfs里面的数据导出到关系型数据库里面。

  • flume:是Cloudera提供的一个高可靠,高可用,分布式的,海量数据采集,聚合和传输的系统。

  • HCatlog: 是一个表存储管理工具,可以使用户以任何形式,任何结构存储数据。

  • Zookeeper:这个是一个分布式的协调服务,是Hadoop和HBase的重要组成部分。可以协调高可用,域名服务,配置服务等。

  • Ambari:是一个web ui管理工具,可以管理,监控集群。

 

2.2 Cloudera CDH

Cloudera CDH生态图

 

  • Batch Sqoop:和Apache Sqoop一样,将关系型数据库里面的数据导入到HDFS里面,将HDFS里面的数据导出到关系型数据库。

  • Kafka:是一个分布式消息队列,可以将生产的数据发送给多种计算框架进行消费。

  • Kudu:Apache Kudu是Apache Hadoop的新成员,它完善了Hadoop的存储层,可对快速数据进行快速分析。

  • HDFS:分布式文件存储

  • SQLR: 这个是建立在Apache Lucene上的快速,开源的搜索平台。

  • Kite:为Python提供的机器学习插件

3.学习大数据需要具备什么?

需要具备一定的Java 基础和软件工程相关的基础知识。

最后就是坚持和行动。

原文地址:https://www.cnblogs.com/shun7man/p/11517875.html