写给大数据开发初学者的话

转自 http://lxw1234.com/archives/2016/11/779.htmios

导读:数据库

第一章:初识Hadoop
第二章:更高效的WordCount
第三章:把别处的数据搞到Hadoop上
第四章:把Hadoop上的数据搞到别处去
第五章:快一点吧,个人SQL
第六章:一夫多妻制
第七章:愈来愈多的分析任务
第八章:个人数据要实时
第九章:个人数据要对外
第十章:牛逼高大上的机器学习编程

常常有初学者在博客和QQ问我,本身想往大数据方向发展,该学哪些技术,学习路线是什么样的,以为大数据很火,就业很好,薪资很高。。。。。。。若是本身很迷茫,为了这些缘由想往大数据方向发展,也能够,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操做系统、硬件、网络、服务器感兴趣?是软件专业,对软件开发、编程、写代码感兴趣?仍是数学、统计学专业,对数据和数字特别感兴趣。。
其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。请不要问我哪一个容易,哪一个前景好,哪一个钱多。
先扯一下大数据的4V特征:服务器

  1. 数据量大,TB->PB
  2. 数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;
  3. 商业价值高,可是这种价值须要在海量数据之上,经过数据分析与机器学习更快速的挖掘出来;
  4. 处理时效性高,海量数据的处理需求再也不局限在离线计算当中。

 

现现在,正式为了应对大数据的这几个特色,开源的大数据框架愈来愈多,愈来愈强,先列举一些常见的:
文件存储:Hadoop HDFS、Tachyon、KFS
离线计算:Hadoop MapReduce、Spark
流式、实时计算:Storm、Spark Streaming、S四、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
……网络

 

眼花了吧,上面的有30多种吧,别说精通了,所有都会使用的,估计也没几个。
就我我的而言,主要经验是在第二个方向(开发/设计/架构),且听听个人建议吧。架构

第一章:初识Hadoop

1.1 学会百度与Google

不论遇到什么问题,先试试搜索并本身解决。
Google首选,翻不过去的,就用百度吧。框架

1.2 参考资料首选官方文档

特别是对于入门来讲,官方文档永远是首选文档。
相信搞这块的大可能是文化人,英文凑合就行,实在看不下去的,请参考第一步。运维

1.3 先让Hadoop跑起来

Hadoop能够算是大数据存储和计算的开山鼻祖,如今大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。机器学习

关于Hadoop,你至少须要搞清楚如下是什么:分布式

  1. Hadoop 1.0、Hadoop 2.0
  2. MapReduce、HDFS
  3. NameNode、DataNode
  4. JobTracker、TaskTracker
  5. Yarn、ResourceManager、NodeManager

本身搭建Hadoop,请使用第一步和第二步,能让它跑起来就行。
建议先使用安装包命令行安装,不要使用管理工具安装。
另外:Hadoop1.0知道它就好了,如今都用Hadoop 2.0.

1.4 试试使用Hadoop

HDFS目录操做命令;
上传、下载文件命令;
提交运行MapReduce示例程序;
打开Hadoop WEB界面,查看Job运行状态,查看Job运行日志。
知道Hadoop的系统日志在哪里。

1.5 你该了解它们的原理了

MapReduce:如何分而治之;
HDFS:数据到底在哪里,什么是副本;
Yarn究竟是什么,它能干什么;
NameNode到底在干些什么;
ResourceManager到底在干些什么;

1.6 本身写一个MapReduce程序

请仿照WordCount例子,本身写一个(照抄也行)WordCount程序,
打包并提交到Hadoop运行。
你不会Java?Shell、Python均可以,有个东西叫Hadoop Streaming。


11 

若是以为本博客对您有帮助,请 赞助做者 。

若是你认真完成了以上几步,恭喜你,你的一只脚已经进来了。


 

第二章:更高效的WordCount

2.1 学点SQL吧

你知道数据库吗?你会写SQL吗?
若是不会,请学点SQL吧。

2.2 SQL版WordCount

在1.6中,你写(或者抄)的WordCount一共有几行代码?
给你看看个人:
SELECT word,COUNT(1) FROM wordcount GROUP BY word;

这即是SQL的魅力,编程须要几十行,甚至上百行代码,我这一句就搞定;使用SQL处理分析Hadoop上的数据,方便、高效、易上手、更是趋势。不管是离线计算仍是实时计算,愈来愈多的大数据处理框架都在积极提供SQL接口。

2.3 SQL On Hadoop之Hive

什么是Hive?官方给的解释是:
The Apache Hive data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage and queried using SQL syntax.

为何说Hive是数据仓库工具,而不是数据库工具呢?有的朋友可能不知道数据仓库,数据仓库是逻辑上的概念,底层使用的是数据库,数据仓库中的数据有这两个特色:最全的历史数据(海量)、相对稳定的;所谓相对稳定,指的是数据仓库不一样于业务系统数据库,数据常常会被更新,数据一旦进入数据仓库,不多会被更新和删除,只会被大量查询。而Hive,也是具有这两个特色,所以,Hive适合作海量数据的数据仓库工具,而不是数据库工具。

2.4 安装配置Hive

请参考1.1 和 1.2 完成Hive的安装配置。能够正常进入Hive命令行。

2.5 试试使用Hive

请参考1.1 和 1.2 ,在Hive中建立wordcount表,并运行2.2中的SQL语句。
在Hadoop WEB界面中找到刚才运行的SQL任务。
看SQL查询结果是否和1.4中MapReduce中的结果一致。

2.6 Hive是怎么工做的

明明写的是SQL,为何Hadoop WEB界面中看到的是MapReduce任务?

2.7 学会Hive的基本命令

建立、删除表;
加载数据到表;
下载Hive表的数据;
请参考1.2,学习更多关于Hive的语法和命令。


11

若是以为本博客对您有帮助,请 赞助做者 。

若是你认真完成了以上几步,恭喜你,你的半条腿已经进来了。


 

如下章节正在整理中,请持续关注 lxw的大数据田地

第三章:把别处的数据搞到Hadoop上

第四章:把Hadoop上的数据搞到别处去

第五章:快一点吧,个人SQL

第六章:一夫多妻制

第七章:愈来愈多的分析任务

第八章:个人数据要实时

第九章:个人数据要对外

第十章:牛逼高大上的机器学习

 

转载请注明:lxw的大数据田地 » 写给大数据开发初学者的话

相关文章
相关标签/搜索