⼤数据处理流程
迪奥香水怎么样⼤数据处理流程
1. 数据处理流程
⽹站流量⽇志数据分析是⼀个纯粹的数据分析项⽬,其整体流程基本上就是依据数据的处理流程进⾏。有以下⼏个⼤的步骤:
1.1 数据采集
数据采集概念,⽬前⾏业会有两种解释:⼀是数据从⽆到有的过程(web服务器打印的⽇志、⾃定义采集的⽇志等)叫做数据采集;另⼀⽅⾯也有把通过使⽤Flume等⼯具把数据采集到指定位置的这个过程叫做数据采集。
关于具体含义要结合语境具体分析,明⽩语境中具体含义即可。
1.2 数据预处理
通过mapreduce程序对采集到的原始⽇志数据进⾏预处理,⽐如清洗,格式整理,滤除脏数据等,并且梳理成点击流模型数据。
1.3 数据⼊库
将预处理之后的数据导⼊到HIVE仓库中相应的库和表中。
1.4 数据分析
项⽬的核⼼内容,即根据需求开发ETL分析语句,得出各种统计结果。
全国装修公司1.5 数据展现
将分析所得数据进⾏数据可视化,⼀般通过图表进⾏展⽰。
扩展:
1、数据处理主要技术
Sqoop:作为⼀款开源的离线数据传输⼯具,主要⽤于Hadoop(Hive) 与传统数据库(MySql,PostgreSQL)间的数据传递。它可以将⼀个关系数据库中数据导⼊Hadoop的HDFS中,也可以将HDFS中的数据导⼊关系型数据库中。
Flume:实时数据采集的⼀个开源框架,它是Cloudera提供的⼀个⾼可⽤⽤的、⾼可靠、分布式的海量⽇志采集、聚合和传输的系统。⽬前已经是Apache的顶级⼦项⽬。使⽤Flume可以收集诸如⽇志、时间等数据并将这些数据集中存储起来供下游使⽤(尤其是数据流框架,例如Storm)。和Flume类似的另⼀个框架是Scribe(FaceBook开源的⽇志收集系统,它为⽇志的分布式收集、统⼀处理提供⼀个可扩展的、⾼容错的简单⽅案)
Kafka:通常来说Flume采集数据的速度和下游处理的速度通常不同步,因此实时平台架构都会⽤⼀个消息中间件来缓冲,⽽这⽅⾯最为流⾏和应⽤最为⼴泛的⽆疑是Kafka。它是由LinkedIn开发的⼀个分布式消息系统,以其可以⽔平扩展和⾼吞吐率⽽被⼴泛使⽤。⽬前主流的开源分布式处理系统(如Storm和Spark等)都⽀持与Kafka 集成。Kafka是⼀个基于分布式的消息发布-订阅系统,特点是速度快、可扩展且持久。与其他消息发布-订阅系统类似,Kafka可在主题中保存消息的信息。⽣产者向主
题写⼊数据,消费者从主题中读取数据。作为⼀个分布式的、分区的、低延迟的、冗余的⽇志提交服务。和Kafka类似消息中间件开源产品还包括RabbiMQ、ActiveMQ、ZeroMQ 等。
MapReduce是Google公司的核⼼计算模型,它将运⾏于⼤规模集上的复杂并⾏计算过程⾼度抽象为两个函数:map和reduce。MapReduce最伟⼤之处在于其将处理⼤数据的能⼒赋予了普通开发⼈员,以⾄于普通开发⼈员即使不会任何的分布式编程知识,也能将⾃⼰的程序运⾏在分布式系统上处理海量数据。
Hive:MapReduce将处理⼤数据的能⼒赋予了普通开发⼈员,⽽Hive进⼀步将处理和分析⼤数据的能⼒赋予了实际的数据使⽤⼈员(数据开发⼯程师、数据分析师、算法⼯程师、和业务分析⼈员)。Hive是由Facebook开发并贡献给Hadoop开源社区的,是⼀个建⽴在Hadoop体系结构上的⼀层SQL抽象。Hive提供了⼀些对Hadoop⽂件中数据集进⾏处理、查询、分析的⼯具。它⽀持类似于传统RDBMS 的SQL语⾔的查询语⾔,⼀帮助那些熟悉SQL的⽤户处理和查询Hodoop在的数据,该查询语⾔称为Hive SQL。Hive SQL实际上先被SQL解析器解析,然后被Hive框架解析成⼀个MapReduce可执⾏计划,并按照该计划⽣产MapReduce任务后交给Hadoop集处理。
Spark:尽管MapReduce和Hive能完成海量数据的⼤多数批处理⼯作,并且在打数据时代称为企业⼤数据处理的⾸选技术,但是其数据查询的延迟⼀直被诟病,⽽且也⾮常不适合迭代计算和DAG(有限⽆
生小孩祝福语环图)计算。由于Spark具有可伸缩、基于内存计算能特点,且可以直接读写Hadoop上任何格式的数据,较好地满⾜了数据即时查询和迭代分析的需求,因此变得越来越流⾏。Spark是UC Berkeley AMP Lab(加州⼤学伯克利分校的 AMP实验室)所开源的类Hadoop MapReduce的通⽤并⾏框架,它拥有Hadoop MapReduce所具有的优点,但不同MapReduce的是,Job中间输出结果可以保存在内存中,从⽽不需要再读写HDFS ,因此能更好适⽤于数据挖掘和机器学习等需要迭代的MapReduce算法。Spark也提供类Live的SQL接⼝,即Spark SQL,来⽅便数据⼈员处理和分析数据。Spark还有⽤于处理实时数据的流计算框架Spark Streaming,其基本原理是将实时流数据分成⼩的时间⽚段(秒或⼏百毫秒),以类似Spark离线批处理的⽅式来处理这⼩部分数据。
Storm:MapReduce、Hive和Spark是离线和准实时数据处理的主要⼯具,⽽Storm是实时处理数据的。Storm是Twitter开源的⼀个类似于Hadoop的实时数据处理框架。Storm对于实时计算的意义相当于Hadoop对于批处理的意义。Hadoop提供了Map和Reduce原语,使对数据进⾏批处理变得⾮常简单和优美。同样,Storm也对数据的实时计算提供了简单的Spout和Bolt原语。Storm集表⾯上和Hadoop集⾮常像,但是在Hadoop上⾯运⾏的是MapReduce的Job,⽽在Storm上⾯运⾏的是Topology(拓扑)。Storm拓扑任务和Hadoop MapReduce任务⼀个⾮常关键的区别在于:1个MapReduce Job最终会结束,⽽1⼀个Topology永远运⾏(除⾮显⽰的杀掉它,),所以实际上Storm等实时任务的资源使⽤相⽐离线MapReduce任务等要⼤很多,因为离线任务运⾏完就释放掉所使⽤的
计算、内存等资源,⽽Storm等实时任务必须⼀直占有直到被显式的杀掉。Storm具有低延迟、分布式、可扩展、⾼容错等特性,可以保证消息不丢失,⽬前Storm, 类Storm或基于Storm抽象的框架技术是实时处理、流处理领域主要采⽤的技术。
Flink:在数据处理领域,批处理任务和实时流计算任务⼀般被认为是两种不同的任务,⼀个数据项⽬⼀般会被设计为只能处理其中⼀种任务,例如Storm只⽀持流处理任务,⽽MapReduce, Hive只⽀持批处理任务。Apache Flink是⼀个同时⾯向分布式实时流处理和批量数据处理的开源数据平台,它能基于同⼀个Flink运⾏时(Flink Runtime),提供⽀持流处理和批处理两种类型应⽤的功能。Flink在实现流处理和批处理时,与传统的⼀些⽅案完全不同,它从另⼀个视⾓看待流处理和批处理,将⼆者统⼀起来。Flink完全⽀持流处理,批处理被作为⼀种特殊的流处理,只是它的数据流被定义为有界的⽽已。基于同⼀个Flink运⾏时,Flink分别提供了流处理和批处理API,⽽这两种API也是实现上层⾯向流处理、批处理类型应⽤框架的基础。天乩之白蛇传说的演员
2、数据存储主要技术
HDFS:Hadoop Distributed File System,简称FDFS,是⼀个分布式⽂件系统。它有⼀定⾼度的容错性和⾼吞吐量的数据访问,⾮常适合⼤规模数据集上的应⽤。HDFS提供了⼀个⾼容错性和⾼吞吐量的海量数据存储解决⽅案。在Hadoop的整个架构中,HDFS在MapReduce任务处理过程在中提供了
对⽂件操作的和存储的的⽀持,MapReduce在HDFS基础上实现了任务的分发、跟踪和执⾏等⼯作,并收集结果,两者相互作⽤,共同完成了Hadoop分布式集的主要任务。
HBase:HBase是⼀种构建在HDFS之上的分布式、⾯向列族的存储系统。在需要实时读写并随机访问超⼤规模数据集等场景婴儿手脚印
下,HBase⽬前是市场上主流的技术选择。
HBase技术来源于Google论⽂《Bigtable :⼀个结构化数据的分布式存储系统》。如同Bigtable利⽤了Google File System提供的分布式数据存储⽅式⼀样,HBase在HDFS之上提供了类似于Bigtable的能⼒。
HBase解决了传递数据库的单点性能极限。实际上,传统的数据库解决⽅案,尤其是关系型数据库也可以通过复制和分区的⽅法来提⾼单点性能极限,但这些都是后知后觉的,安装和维护都⾮常复杂。
⽽HBase从另⼀个⾓度处理伸缩性的问题,即通过线性⽅式从下到上增加节点来进⾏扩展。
HBase 不是关系型数据库,也不⽀持SQL,它的特性如下:
1、⼤:⼀个表可以有上亿上,上百万列。
2、⾯向列:⾯向列表(簇)的存储和权限控制,列(簇)独⽴检索。
3、稀疏:为空(null)的列不占⽤存储空间,因此表可以设计的⾮常稀疏。
4、⽆模式::每⼀⾏都有⼀个可以排序的主键和任意多的列。列可以根据需求动态增加,同⼀张表中不同的⾏可以有截然不同的列。
5、数据多版本:每个单元的数据可以有多个版本,默认情况下,版本号字段分开,它是单元格插⼊时的时间戳。
6、数据类型单⼀:HBase中数据都是字符串,没有类型。吐槽大会第三季
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论