大数据不是一门专门的技术,而是很多技术的综合应用。可以通过一些列大数据技术对海量数据进行分析,挖掘出数据背后的价值。 虽然大数据与Hadoop密切相关,但Hadoop并不等同于大数据,大数据也不是指Hadoop,大数据代表的是一种理念、一种解决问题的思维、一些列技术的集合,Hadoop只是其中一种具体的处理数据的技术框架,目前比较流行的Spark、Flink等实时计算框架也属于大数据技术。
1、数据获取
低侵入的浏览器探针技术采集用户浏览数据,使用爬虫技术获取网页技术,使用Canal采集MySQL数据库的binlog日志,使用组件Flume采集WEB服务器的日志。 一般采用Flume、Logstash、Filebeat等工具采集日志文件数据。采用Sqoop、Canal等工具采集数据库中的数据。
2、数据存储
大数据平台的调优很多情况下主要集中在对磁盘I/O的调优。 多数据并行读写,首要解决的是硬盘故障问题,最常用的方法是复制(replication),系统保存多个副本(replaca),一种方式是使用冗余磁盘阵列(RAID),另一种方式是Hadoop分布式文件系统(HDFS),另外还有构建在HDFS之上的分布列式数据库(HBase),其可以提供实时的多维分析。 实时计算项目中,经常需要使用Kafka消息队列作为实时的数据中转服务。
3、资源管理
资源管理的本质是集群、数据中心级别资源的统一管理和分配。其中多租户、弹性伸缩、动态分配是资源管理系统要解决的和信问题。 为了提高集群资源利用率、解决资源共享问题,YARN应用而生。实际应用中,一般会将各种大数据处理框架部署到YARN集群中(Mapreduce on YARN、Spark on YARN、Flink on YARN)。
4、大数据处理核心
4.1、数据处理
离线处理即批处理:MapReduce、Spark Core、Flink DateSet。 实时处理即流处理:Spark Streaming、Flink DataStream。
4.2、交互式分析
实际引用中,经常需要对离线或实时处理后的历史数据,根据不同的条件进行多维分析查询并及时返回结果,这是旧需要交互式分析。 在大数据领域,交互式查询通常用于实时报表分析、实时大屏、在线话单查询等。 主要是基于SQL on Hadoop,SQL on Hadoop是一个泛化的概念,是指Hadoop生态圈中一系列支撑SQL接口和技术,譬如Hive SQL、Spark SQL。
4.3、机器学习与数据挖掘
复杂的数据分析需要利用数据挖掘和机器学习的方法。 机器学习时数据挖局中的一种重要工具数据挖掘不仅要研究、拓展、应用一些机器学习的方法,还要通过许多非机器学习技术解决数据存储、数据噪声等实际问题。 机器学习库:Spark ML、Flink ML(发展过程中)。
另外在搭建Hadoop集群过程中,还需要搭建Zookeeper分布式协调服务,用来实现HDFS集群和YARN集群的高可用。
|