大数据初学者学习指南(建议收藏)
万字长文,建议收藏 大纲: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hadoop上的数据搞到别处去 第五章:快一点吧,我的SQL 第六章:一夫多妻制 第七章:越来越多的分析任务 第八章:我的数据要实时 第九章:我的数据要对外 第十章:牛逼高大上的机器学习
数据量大,TB->PB 数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等; 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来; 处理时效性高,海量数据的处理需求不再局限在离线计算当中。
离线计算:Hadoop MapReduce、Spark
流式、实时计算:Storm、Spark Streaming、S4、Heron
K-V、NOSQL数据库:HBase、Redis、MongoDB
资源管理:YARN、Mesos
日志收集:Flume、Scribe、Logstash、Kibana
消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
分布式协调服务:Zookeeper
集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
数据挖掘、机器学习:Mahout、Spark MLLib
数据同步:Sqoop
任务调度:Oozie
……
就我个人而言,主要经验是在第二个方向(开发/设计/架构),且听听我的建议吧。
第一章:初识Hadoop
1.1 学会百度与Google
1.2 参考资料首选官方文档
1.3 先让Hadoop跑起来
Hadoop 1.0、Hadoop 2.0 MapReduce、HDFS NameNode、DataNode JobTracker、TaskTracker Yarn、ResourceManager、NodeManager
1.4 试试使用Hadoop
上传、下载文件命令;
提交运行MapReduce示例程序;
1.5 你该了解它们的原理了
HDFS:数据到底在哪里,什么是副本;
Yarn到底是什么,它能干什么;
NameNode到底在干些什么;
ResourceManager到底在干些什么;
1.6 自己写一个MapReduce程序
打包并提交到Hadoop运行。
第二章:更高效的WordCount
2.1 学点SQL吧
如果不会,请学点SQL吧。
2.2 SQL版WordCount
2.3 SQL On Hadoop之Hive
2.4 安装配置Hive
2.5 试试使用Hive
在Hadoop WEB界面中找到刚才运行的SQL任务。
2.6 Hive是怎么工作的
2.7 学会Hive的基本命令
加载数据到表;
下载Hive表的数据;
0和Hadoop2.0的区别; MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数); HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据; 自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志; 会写简单的SELECT、WHERE、GROUP BY等SQL语句; Hive SQL转换成MapReduce的大致流程; Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;
第三章:把别处的数据搞到Hadoop上
3.1 HDFS PUT命令
3.2 HDFS API
实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。
3.3 Sqoop
使用Sqoop完成从MySQL同步数据到Hive表;
3.4 Flume
因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。
3.5 阿里开源的DataX
第四章:把Hadoop上的数据搞到别处去
4.1 HDFS GET命令
4.2 HDFS API
4.3 Sqoop
使用Sqoop完成将Hive表中的数据同步到MySQL;
4.4 DataX
第五章:快一点吧,我的SQL
5.1 关于Spark和SparkSQL
Spark有的核心概念及名词解释。
SparkSQL和Spark是什么关系,SparkSQL和Hive是什么关系。
SparkSQL为什么比Hive跑的快。
5.2 如何部署和运行SparkSQL
如何在Yarn上运行SparkSQL?
使用SparkSQL查询Hive中的表。
第六章:一夫多妻制
6.1 关于Kafka
6.2 如何部署和使用Kafka
为什么Spark比MapReduce快。 使用SparkSQL代替Hive,更快的运行SQL。 使用Kafka完成数据的一次收集,多次消费架构。 自己可以写程序完成Kafka的生产者和消费者。
第七章:越来越多的分析任务
7.1 Apache Oozie
2. Oozie可以调度哪些类型的任务(程序)?
3. Oozie可以支持哪些任务触发方式?
4. 安装配置Oozie。
7.2 其他开源的任务调度系统
第八章:我的数据要实时
8.1 Storm
2. Storm由哪些核心组件构成,各自担任什么角色?
3. Storm的简单安装和部署。
4. 自己编写Demo程序,使用Storm完成实时数据流计算。
8.2 Spark Streaming
2. Spark Streaming和Storm比较,各有什么优缺点?
3. 使用Kafka + Spark Streaming,完成实时计算的Demo程序。
第九章:我的数据要对外
第十章:牛逼高大上的机器学习
分类问题:包括二分类和多分类,二分类就是解决了预测的问题,就像预测一封邮件是否垃圾邮件;多分类解决的是文本的分类; 聚类问题:从用户搜索过的关键词,对用户进行大概的归类。 推荐问题:根据用户的历史浏览和点击行为进行相关推荐。