一、大数据采集的流程和方法
大数据采集的流程和方法
![](https://file.jishuzhan.net/article/1786087520639913985/434b2eed93840b1fac882550a4b0d7c5.webp)
系统日志采集方法
很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,例如:
- Flume:分布式日志收集系统,最初由Cloudera开发,现是Apache的一个开源项目。
- Chukwa:开源分布式数据收集系统,构建在HDFS和MapReduce框架之上。它可以用于监控(2000个以上节点,每天产生数据量在TB级别)Hadoop集群的整体运行情况并对他们的日志进行分析。
- Scrible:Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用。Scribe为日志的"分布式收集,统一处理",提供了一个可扩展的、高容错的方案。
- Kafka:最早是LinkedIn的开发的消息系统,现是Apache的一个开源项目。
Apache Flume
![](https://file.jishuzhan.net/article/1786087520639913985/cd78391354e5224309c162e11147106a.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/d6a018ffc9b5cefa6b510ac02fa2aefb.webp)
数据库采集方法
![](https://file.jishuzhan.net/article/1786087520639913985/169f6628699534d993943a1eb71b42c8.webp)
网络数据采集方法
![](https://file.jishuzhan.net/article/1786087520639913985/f49be1f2c66f03cae6c3de6684397de9.webp)
网络爬虫工具基本可以分为3类。
(1)分布式网络爬虫工具,如Nutch。
(2)Java网络爬虫工具,如Crawler4j、WebMagic、WebCollector。
(3)非Java网络爬虫工具,如Scrapy(基于Python语言开发)
![](https://file.jishuzhan.net/article/1786087520639913985/f2073254bca8027b8dbc7f80e7f67697.webp)
通用网络爬虫
![](https://file.jishuzhan.net/article/1786087520639913985/b026347f21d6dc2710677f8c9de01136.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/15e58c9fa3f76ebe91327db8f426d990.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/08122d45c4b8b4fa75abb8dc56232916.webp)
二、大数据计算框架概述
大数据计算框架概述
![](https://file.jishuzhan.net/article/1786087520639913985/6cfa3e5f572650a287f92991957e023f.webp)
Hadoop
![](https://file.jishuzhan.net/article/1786087520639913985/e5d80786b544880c15d41af0ccfe86cc.webp)
MapReduce
![](https://file.jishuzhan.net/article/1786087520639913985/4ed0fe2e4f278f8556349393972300a9.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/ce7314187b70e95fbd48e2d45e314db6.webp)
Spark实时处理系统
![](https://file.jishuzhan.net/article/1786087520639913985/362156b79fceac09aa90fac7107f238e.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/3e16e6d8951eb0ffac9855ffb766f123.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/60617999ab28b358bbc8ff6998e8ef33.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/adae10109c684956cea4bef6285db240.webp)
流计算框架
![](https://file.jishuzhan.net/article/1786087520639913985/230b32f948728f9208c64396a6c3ffbb.webp)
Storm![](https://file.jishuzhan.net/article/1786087520639913985/e6a6e85f43cef78ba8cbed533358abe0.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/e583b3c5b3f46de87beaaf461312bfa2.webp)
Trident
![](https://file.jishuzhan.net/article/1786087520639913985/254eb91a1b11b496ff4dcd3b2054637e.webp)
交互式分析框架
在解决了大数据的可靠存储和高效计算后,如何为数据分析人员提供便利日益受到关注,而最便利的分析方式莫过于交互式查询。这几年交互式分析技术发展迅速,目前这一领域知名的平台有十余个,包括Google开发的Dremel和PowerDrill,Facebook开发的Presto, Hadoop服务商Cloudera和HortonWorks分别开发的Impala和Stinger,以及Apache项目Hive、Drill、Tajo、Kylin、MRQL等。
一些批处理和流计算平台如Spark和Flink也分别内置了交互式分析框架。由于SQL已被业界广泛接受,目前的交互式分析框架都支持用类似SQL的语言进行查询。早期的交互式分析平台建立在Hadoop的基础上,被称作SQL-on-Hadoop。后来的分析平台改用Spark、Storm等引擎,不过SQL-on-Hadoop的称呼还是沿用了下来。SQL-on-Hadoop也指为分布式数据存储提供SQL查询功能。
Hive
![](https://file.jishuzhan.net/article/1786087520639913985/dd7af8e1786db4fa53eccb1151acd76f.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/e934323b256c27d51608ad669c9ac142.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/c0917069146a66e2e684e3bf15bf2385.webp)
Apache Flink
![](https://file.jishuzhan.net/article/1786087520639913985/e9a2440f143b15e72b3dd2d3de79bd10.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/ae0b6a270f03f530aa35c9169aa16b84.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/8103897432413b2d9ad192e25264c9c3.webp)
三、云计算概述
云计算本质上是一个分布式的架构,能够为海量数据提供充足的计算和存储资源,充分挖掘。
![](https://file.jishuzhan.net/article/1786087520639913985/18a646a753028b110825c54b7a737b49.webp)
并行计算
并行计算可分为时间上的并行和空间上的并行。时间上的并行是指流水线技术,而空间上的并行则是指用多个处理器并发地执行计算。
传统意义上的并行与分布式计算的区别是:分布式计算强调的是任务的分布执行,而并行计算强调的是任务的并发执行。
![](https://file.jishuzhan.net/article/1786087520639913985/6cd6de4add0192b9a1b73d7c250cf420.webp)
分布式计算
![](https://file.jishuzhan.net/article/1786087520639913985/772eb0f44ccbb3e3ad0b2d896daaf892.webp)
网格计算
![](https://file.jishuzhan.net/article/1786087520639913985/f0e1ffd1d2d7a3beec010346c6813e2f.webp)
云计算
![](https://file.jishuzhan.net/article/1786087520639913985/a7aed6d3d16d373ceec24308a5f2f629.webp)
云计算的"云"就是存在于互联网上的服务器集群中的资源,它包括硬件资源(服务器、存储器、CPU等)和软件资源(例如应用软件,集成开发环境等)。
简而言之﹐云计算是一种商业计算模型,它将计算任务分布在由大量计算机构成的资源池上,使用户能够按需获取计算能力,存储空间和信息服务。 不同的学者、机构给出了至少上百种不同的定义
![](https://file.jishuzhan.net/article/1786087520639913985/bf907f07b72ef1f03730a68bbc62778a.webp)
IaaS
![](https://file.jishuzhan.net/article/1786087520639913985/50edc1ac610b2b3705f3b31698abc943.webp)
PaaS
![](https://file.jishuzhan.net/article/1786087520639913985/503c2020bb920bc5ddece432873a3b43.webp)
SaaS
![](https://file.jishuzhan.net/article/1786087520639913985/fa5493276a2a6ca18e647bf4a0691494.webp)
按部署模式分类
![](https://file.jishuzhan.net/article/1786087520639913985/4f5eeed2b83fcbc9a41c868f6113797d.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/5ea9516cc88d2b7616fb3956c5f8b99e.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/822fe8cc9c29cd635eb3da7b432e8761.webp)
![](https://file.jishuzhan.net/article/1786087520639913985/ecc5b4467183cca0280c7b9b1db9d2a1.webp)