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

见 : http://lxw1234.com/archives/2016/11/782.htm



如果你已经按照《写给大数据开发初学者的话》中第一章和第二章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点:

  1. 0和Hadoop2.0的区别;
  2. MapReduce的原理(还是那个经典的题目,一个10G大小的文件,给定1G大小的内存,如何使用Java程序统计出现次数最多的10个单词及次数);
  3. HDFS读写数据的流程;向HDFS中PUT数据;从HDFS中下载数据;
  4. 自己会写简单的MapReduce程序,运行出现问题,知道在哪里查看日志;
  5. 会写简单的SELECT、WHERE、GROUP BY等SQL语句;
  6. Hive SQL转换成MapReduce的大致流程;
  7. Hive中常见的语句:创建表、删除表、往表中加载数据、分区、将表中数据下载到本地;

从上面的学习,你已经了解到,HDFS是Hadoop提供的分布式存储框架,它可以用来存储海量数据,MapReduce是Hadoop提供的分布式计算框架,它可以用来统计和分析HDFS上的海量数据,而Hive则是SQL On Hadoop,Hive提供了SQL接口,开发人员只需要编写简单易上手的SQL语句,Hive负责把SQL翻译成MapReduce,提交运行。

此时,你的”大数据平台”是这样的:

lxw1234

那么问题来了,海量数据如何到HDFS上呢?

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

此处也可以叫做数据采集,把各个数据源的数据采集到Hadoop上。

3.1 HDFS PUT命令

这个在前面你应该已经使用过了。

put命令在实际环境中也比较常用,通常配合shell、python等脚本语言来使用。

建议熟练掌握。

3.2 HDFS API

HDFS提供了写数据的API,自己用编程语言将数据写入HDFS,put命令本身也是使用API。
实际环境中一般自己较少编写程序使用API来写数据到HDFS,通常都是使用其他框架封装好的方法。比如:Hive中的INSERT语句,Spark中的saveAsTextfile等。
建议了解原理,会写Demo。

3.3 Sqoop

Sqoop是一个主要用于Hadoop/Hive与传统关系型数据库Oracle/MySQL/SQLServer等之间进行数据交换的开源框架。
就像Hive把SQL翻译成MapReduce一样,Sqoop把你指定的参数翻译成MapReduce,提交到Hadoop运行,完成Hadoop与其他数据库之间的数据交换。

自己下载和配置Sqoop(建议先使用Sqoop1,Sqoop2比较复杂)。
了解Sqoop常用的配置参数和方法。
使用Sqoop完成从MySQL同步数据到HDFS;
使用Sqoop完成从MySQL同步数据到Hive表;

PS:如果后续选型确定使用Sqoop作为数据交换工具,那么建议熟练掌握,否则,了解和会用Demo即可。

3.4 Flume

Flume是一个分布式的海量日志采集和传输框架,因为“采集和传输框架”,所以它并不适合关系型数据库的数据采集和传输。
Flume可以实时的从网络协议、消息系统、文件系统采集日志,并传输到HDFS上。
因此,如果你的业务有这些数据源的数据,并且需要实时的采集,那么就应该考虑使用Flume。

下载和配置Flume。
使用Flume监控一个不断追加数据的文件,并将数据传输到HDFS;

PS:Flume的配置和使用较为复杂,如果你没有足够的兴趣和耐心,可以先跳过Flume。

3.5 阿里开源的DataX

之所以介绍这个,是因为我们公司目前使用的Hadoop与关系型数据库数据交换的工具,就是之前基于DataX开发的,非常好用。
可以参考我的博文《异构数据源海量数据交换工具-Taobao DataX 下载和使用》。
现在DataX已经是3.0版本,支持很多数据源。
你也可以在其之上做二次开发。

PS:有兴趣的可以研究和使用一下,对比一下它与Sqoop。

如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

lxw1234


11 

如果觉得本博客对您有帮助,请 赞助作者 。


 

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

前面介绍了如何把数据源的数据采集到Hadoop上,数据到Hadoop上之后,便可以使用Hive和MapReduce进行分析了。那么接下来的问题是,分析完的结果如何从Hadoop上同步到其他系统和应用中去呢?

其实,此处的方法和第三章基本一致的。

4.1 HDFS GET命令

把HDFS上的文件GET到本地。需要熟练掌握。

4.2 HDFS API

同3.2.

4.3 Sqoop

同3.3.
使用Sqoop完成将HDFS上的文件同步到MySQL;
使用Sqoop完成将Hive表中的数据同步到MySQL;

4.4 DataX

同3.5.

 

如果你认真完成了上面的学习和实践,此时,你的”大数据平台”应该是这样的:

lxw1234

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

 

第五章:快一点吧,我的SQL

第六章:一夫多妻制

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

第八章:我的数据要实时

第九章:我的数据要对外

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




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


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


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

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

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

第五章:快一点吧,我的SQL

第六章:一夫多妻制

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

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

第八章:我的数据要实时

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

第九章:我的数据要对外

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



  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pandas的结构和应用

Pandas处理以下三个数据结构 - 系列(Series)----一维ndarray   特点:带有标签,可以使用标签作为索引,大小不能改变,内部数据可以改变。 属性:与NumPy类似,多了一个轴标签axis lables 数据…

JZOJ5857 【NOIP提高组模拟A组2018.9.8】没有上司的舞会

题目 Description “那么真的有果尔德施坦因这样一个人?”他问道。 “是啊,有这样一个人,他还活着。至于在哪里,我就不知道了。” “那么那个密谋——那个组织?这是真的吗?不是秘密警察的捏造吧?” “不是,这是真的。我们管…

python 中如何判断list中是否包含某个元素

在python中可以通过in和not in关键字来判读一个list中是否包含一个元素 theList [‘a’,’b’,’c’] if ‘a’ in theList: print ‘a in the list’ if ‘d’ not in theList: print ‘d is not in the list’

时间即财富:创业者浪费精力的八个错误

导读:本文作者Jeff Miller是美食网页应用Punchfork的创始人,同时也是DuckDuckGo、Ginzametrics、Art.sy、DataMinr以及Forkly的投资人。作者通过对自己创业初期一些错误选择进行盘点,告诉读者在创业初期应该学会选择,因为在创业初…

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

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 如果你已经按照《写给大数据开发初学者的话2》中第三章和第四章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识…

十五周二次课

18.6 负载均衡集群介绍 主流开源软件LVS、keepalived、haproxy、nginx等其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做7层使用keepalived的负载均衡功能其实就是lvslvs这种4层的负…

LeetCode--171--Excel表列序号

问题描述: 给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1: 输入: "A" 输出: 1示例 2: 输入: "AB" 输出: 28示例 3: 输入: "…

中国历代王朝大排名

中国自秦以降,一共出过九个大王朝,它们是:秦、汉、晋、隋、唐、宋、元、明、清。另外,还出过五十几个小王朝,它们是: 三国时的魏、蜀、吴,共三个; [ 转自铁血社区 http://bbs.tiexue…

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

见:http://lxw1234.com/archives/2016/11/795.htm 如果你已经按照《写给大数据开发初学者的话3》中第五章和第六章的流程认真完整的走了一遍,那么你应该已经具备以下技能和知识点: 为什么Spark比MapReduce快。使用SparkSQL代替Hive&#xff…

TPS及计算方法

TPS (transaction per second)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如,用户每分钟执行6个事务,TPS为6 / 60s 0.10 TPS。同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务…

域名解析服务之DNS查询类型

在实际应用中DNS查询主要分为两种方式查询:1.递归查询;2.迭代查询 一般情况下:为了减少资源的消耗,网络中客户端与所属的本地DNS服务器查询方式通常为递归查询,本地DNS服务器与外部的公共DNS服务器间的查询方式为迭代查…

MFC Ribbon界面设计

Ribbon是类似于office2007样式的界面,它替代了传统的MFC程序里的菜单和工具栏 MFC默认生成的Ribbon功能少,需要我们自己添加一些控件和图片等元素使界面好看 看下面的一个界面,是VC2010示例里的 看到它与默认Ribbon样式的区别: 工…

互联网手机躁动:“周大炮”追逐“雷布斯”

摘要:周鸿祎选择非自有品牌补贴,可能是看到了小米初期的艰难,也想追求速度,绕开自制手机终端环节。于小米而言,需要解决后续机型承接、持续稳定提升产能;对360而言,需要投入巨量补贴资金&#x…

获取泛型T的ClassT clazz

在我们搭建框架中往往会用到泛型,我们知道泛型的好处是在编译的时候检查类型安全&#xff0c;并且所有的强制转换都是自动和隐式的&#xff0c;代码的重用率高 然而有时候<method>的入参并不能直接强制转换成泛型的类型,比如说下面这段代码&#xff1a; 很明显String 类…

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

见&#xff1a;http://lxw1234.com/archives/2017/01/832.htm 至此&#xff0c;你的大数据平台底层架构已经成型了&#xff0c;其中包括了数据采集、数据存储与计算&#xff08;离线和实时&#xff09;、数据同步、任务调度与监控这几大模块。接下来是时候考虑如何更好的对外提…

3.spring boot Controller获取请求参数的值

2019独角兽企业重金招聘Python工程师标准>>> 1.获取连接中的参数,使用倒的关键词PathVariable RestController public class HelloController {RequestMapping(value "/hello/{id}",method RequestMethod.GET)public String index(PathVariable("i…

断开的管道 java.io.IOException: Broken pipe 解决方法

断开的管道 java.io.IOException: Broken pipe 解决方法一、Broken pipe产生原因分析1.当访问某个服务突然服务器挂了&#xff0c;就会产生Broken pipe;2.客户端读取超时关闭了连接&#xff0c;这时服务器往客户端再写数据就发生了broken pipe异常&#xff01;二、方案1.问题一…

登录与注册

代码如下 private void btn_login_Click(object sender, EventArgs e){SqlConnection sqlconnection new SqlConnection();sqlconnection.ConnectionString ConfigurationManager.ConnectionStrings["SQL"].ConnectionString;SqlCommand sqlcommand new SqlComman…

四大电商对垒价格战:家电高库存或是推手

摘要&#xff1a;[京东、苏宁、国美、天猫等电商在家电领域的价格战&#xff0c;更多是定价方家电厂商的倒逼]  “五一”期间&#xff0c;电商企业发起的价格战硝烟仍未消散&#xff0c;如今战火又起。一种较为普遍的看法是&#xff0c;此次价格战&#xff0c;正是各家电商企…

三分钟明白 Activiti工作流 -- java运用

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、 什么是工作流 以请假为例&#xff0c;现在大多数公司的请假流程是这样的 员工打电话&#xff08;或网聊&#xff09;向上级提出请…