大数据的4V特征:
1.数据量大,TB->PB
2.数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;
3.商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;
4.处理时效性高,海量数据的处理需求不再局限在离线计算当中。
常见的大数据的开源框架:
l文件存储:Hadoop HDFS、Tachyon、KFS
l离线计算:Hadoop MapReduce、Spark
l流式、实时计算:Storm、Spark Streaming、S4、Heron
lK-V、NOSQL数据库:HBase、Redis、MongoDB
l资源管理:YARN、Mesos
l日志收集:Flume、Scribe、Logstash、Kibana
l消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
l查询分析:Hive、Impala、Pig、Presto、Phoenix、SparkSQL、Drill、Flink、Kylin、Druid
l分布式协调服务:Zookeeper
l集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
l数据挖掘、机器学习:Mahout、Spark MLLib
l数据同步:Sqoop
l任务调度:Oozie
l……
第一章:初识Hadoop
1.1学会百度与Google
不论遇到什么问题,先试试搜索并自己解决。Google首选,翻不过去的,就用百度吧。
1.2参考资料首选官方文档
特别是对于入门来说,官方文档永远是首选文档。
1.3先让Hadoop跑起来
Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。
关于Hadoop,你至少需要搞清楚以下是什么:
lHadoop 1.0、Hadoop 2.0(Hadoop1.0知道它就行了,现在都用Hadoop 2.0.)
lMapReduce、HDFS
lNameNode、DataNode
lJobTracker、TaskTracker
lYarn、ResourceManager、NodeManager
l自己搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。(建议先使用安装包命令行安装,不要使用管理工具安装。)
1.4试试使用Hadoop
lHDFS目录操作命令;
l上传、下载文件命令;
l提交运行MapReduce示例程序;
l打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。
l知道Hadoop的系统日志在哪里。
1.5了解Hadoop原理
lMapReduce:如何分而治之;
lHDFS:数据到底在哪里,什么是副本;
lYarn到底是什么,它能干什么;
lNameNode到底在干些什么;
lResourceManager到底在干些什么;
1.6自己写一个MapReduce程序
l请仿照WordCount例子,自己写一个(照抄也行)WordCount程序,
l打包并提交到Hadoop运行。
你不会Java?Shell、Python都可以,有个东西叫Hadoop Streaming。
如果你认真完成了以上几步,恭喜你,你的一只脚已经进来了。
第二章:更高效的WordCount
2.1学SQL
你知道数据库吗?你会写SQL吗?如果不会,请学点SQL吧。
2.2 SQL版WordCount
在1.6中,你写(或者抄)的WordCount一共有几行代码?
给你看看我的:
SELECT word,COUNT(1) FROM wordcount GROUP BY word;
这便是SQL的魅力,编程需要几十行,甚至上百行代码,我这一句就搞定&#