断断续续的学了半年的大数据,只是会搭,会用,可一回头,感觉又啥都不会,从头记录一下
大数据是当前很火的一个技术方向,说白了,其实就是一系列工具的组合使用,构建的更加完善,形成了一套技术体系,当然,技术只是这个方向很小的一个部分,个人比较关注和有兴趣而已
大数据的技术体系
大数据的技术体系,总的来说从源头到应用可以分为以下几个
1. 数据源,比如互联网的各种数据,智能设备的数据,社交、电商等
2.数据收集,对数据源产生的数据进行收集,我们只讨论软件方面所需的工具,比较流行的工具有Flume、Logstash、 Sscribe
3. 数据存储,对上一步所收集到的数据进行存储,以便之后进一步的分析,常用的有HDFS(Hadoop自带,主要为Hadoop自己提供更为方便的存储,方便之后的计算)、Kafka(比较流行的分布式消息订阅系统,可以把数据按照队列的方式存储,便于后续程序消费,不是太熟悉,以后进行深入剖析)、Redis(一个分布式内存数据库,它的最大特点就是数据在内存中存放,存取速度快,不过只适合临时存放数据吧)、Hbase(典型的一个nosql数据库,目前的理解是可以作为hdfs的一个补充,支持随机读写)、MySQL(著名的关系型数据库)、Oracle等
4.资源管理,对计算服务的各种资源进行调配,以达到最大化利用集群性能的目的
5.计算层,对数据进行处理,以满足各种业务需求。MapReduce(批处理计算框架,适合做大规模的离线计算),SparkStreaming(适用于流处理)、Storm(流处理)、Flink(流处理)、SparkSQL(交互式数据分析)
6. 数据分析层,对处理后的数据进行分析,为公司决策等各种场景提供参考意见。主要的技术有数据仓库(Hive、Pig)、数据挖掘(SparkMLLib)、OLAP(在数据仓库的基础上进行数据分析,比如Druid)
7.数据可视化,对最终结果以图表等直观方式进行展示
应用领域
大数据的应用领域很广,简单介绍:
1. 互联网 比如搜索引擎,推荐系统,广告系统
以上列举的三个互联网的应用有时候是没有明显界限的,搜索引擎需要对海量网页数据进行处理,建立网页数据库,并根据搜索结果进行排名推荐,根据关联性推荐合适的广告等
2.电商 其实也算互联网吧(个人理解) 应用比如用户画像、推荐系统、行为分析等
对此了解不太多,就不多说了
3. 医疗领域 主要有流行病预测、病情分析
4. 金融领域 主要有风控系统,欺诈分析
5.视频领域 主要有视频分析、广告系统、推荐系统
需要的技能
语言 Java(基本掌握)/Python(会用)/Scala(待深挖)
Linux常用命令、Shell编程
HDFS原理、MapReduce原理及编程、Yarn原理、Hadoop集群搭建
Hive原理、HQL、自定义函数、数据仓库设计
Spark原理、SparkStreaming编程、SparkSQL
Kafka原理、配置搭建、API接口开发及管理
Flume原理、搭建
Zookeeper原理、搭建