687 2

写给大数据开发初学者的话(一) [推广有奖]

  • 0关注
  • 4粉丝

讲师

30%

还不是VIP/贵宾

-

威望
0
论坛币
969 个
学术水平
2 点
热心指数
2 点
信用等级
0 点
经验
4321 点
帖子
837
精华
0
在线时间
1 小时
注册时间
2014-8-28
最后登录
2017-12-12

我有我的love 在职认证  发表于 2017-12-6 15:39:47 |显示全部楼层

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


经常有人问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样的,觉得大数据很火,就业很好,薪资很高。。。。。。。如果自己很迷茫,为了这些原因想往大数据方向发展,也可以,那么我就想问一下,你的专业是什么,对于计算机/软件,你的兴趣是什么?是计算机专业,对操作系统、硬件、网络、服务器感兴趣?是软件专业,对软件开发、编程、写代码感兴趣?还是数学、统计学专业,对数据和数字特别感兴趣。。


点击进入21世纪大数据人才汇聚领域』

点击进入21世纪数据分析精英聚集地』

点击进入21世纪大数据高薪就业领地』


其实这就是想告诉你的大数据的三个发展方向,平台搭建/优化/运维/监控、大数据开发/设计/架构、数据分析/挖掘。请不要问我哪个容易,哪个前景好,哪个钱多。


先扯一下大数据的4V特征:

数据量大,TB->PB

数据类型繁多,结构化、非结构化文本、日志、视频、图片、地理位置等;

商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来;

处理时效性高,海量数据的处理需求不再局限在离线计算当中。

现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的:

文件存储:Hadoop HDFS、Tachyon、KFS

离线计算: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

……


眼花了吧,上面的有30多种吧,别说精通了,全部都会使用的,估计也没几个。

就我个人而言,主要经验是在第二个方向(开发/设计/架构),且听听我的建议吧。


第一章:初识Hadoop


1.1 学会百度与Google

不论遇到什么问题,先试试搜索并自己解决。

Google首选,翻不过去的,就用百度吧。


1.2 参考资料首选官方文档

特别是对于入门来说,官方文档永远是首选文档。

相信搞这块的大多是文化人,英文凑合就行,实在看不下去的,请参考第一步。


1.3 先让Hadoop跑起来

Hadoop可以算是大数据存储和计算的开山鼻祖,现在大多开源的大数据框架都依赖Hadoop或者与它能很好的兼容。

关于Hadoop,你至少需要搞清楚以下是什么:

Hadoop 1.0、Hadoop 2.0

MapReduce、HDFS

NameNode、DataNode

JobTracker、TaskTracker

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。


第二章:更高效的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的语法和命令。




希望之剑 在职认证  发表于 2018-8-18 11:52:24 |显示全部楼层
谢谢分享
回复

使用道具 举报

wangyangguang 发表于 2018-10-9 19:32:47 来自手机 |显示全部楼层
我有我的love 发表于 2017-12-6 15:39
写给大数据开发初学者的话(一)
经常有人问我,自己想往大数据方向发展,该学哪些技术,学习路线是什么样 ...
感谢楼主分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

GMT+8, 2018-11-13 15:39