文档章节

跟小菜一起学大数据之工具篇(二)

小仙女的老苞米
 小仙女的老苞米
发布于 2017/09/06 21:38
字数 1617
阅读 48
收藏 0

       今天咱们接着聊大数据入门之工具篇,为了提高学习的热情,这次咱们以一种需求驱动的方式来介绍剩下的几个工具。作为刚刚接触大数据,而还没有实战的你,可能会想,虽然HBase适合有很多优势,但他毕竟得依附于大数据平台,也就是说没有大数据平台那么HBase也无从谈起,而作为业务库数据,一般普通的小型系统为了做到数据的实效性往往会将数据存放在常见的关系型数据库中(顺便提一句,对于大型的系统有时也会选择直接将数据存放在大数据平台,这时的实效性就需要用到一些像Spark之类的专门处理大数据流的工具,这个后面聊),那么问题就来了,既然业务数据是在关系型数据库,而处理(比如最常见的根据业务数据在大数据平台上做一些聚类算法)大数据平台上,那势必就需要有一个桥梁来链接他们,这个桥梁就是今天要聊得第一个工具,即Sqoop。

        Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。其功能可以用下图形象化的表示。

 

Sqoop常见的用法包括两种,一种是以命令行方式执行数据的导入导出,另一种是以创建job的方式,两种的区别可以想象成shell命令和shell脚本的关系,即命令行只能执行一次, 下次执行还需要重写,而创建job后可以重复的调用该job,由于是初期入门,所以咱们只简单的了解一下各种工具,至于具体工具的用法会在后面结合具体的项目详细描述,在这里就不做过多的赘述了。

         在通过上面介绍的Sqoop将数据导入到大数据平台了,很多朋友可能又会问了,根据前面的介绍在大数据平台下用Hive对数据查询的话,最大的优势是可以自动将sql转换为map任务去执行,这对于执行ETL操作是优势,但对于临时数据的核对这却恰恰成为最大的劣势,因为他会将任意一个,哪怕是很简单的sql都解读为Map-Reduce的形式去执行,这样当我们只需要执行一个简单的查询的时候就需要浪费很多时间等着他去转换,这时我们就想要一种既可以在大数据平台下工作,又能明显提高效率的sql工具,这时就该 Impala 登场了。

        Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。简单的讲他就是专门解决大数据平台下数据实时交互的问题。Impala没有再使用缓慢的 Map-Reduce处理模式,而是通过使用与并行多节点的关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。所以,Impala的最大特点也是最大卖点就是它的快速。下面列举一下impala主要的优点。

1、Impala不需要把中间结果写入磁盘,省掉了大量的I/O开销。

2、省掉了MapReduce作业启动的开销。MapReduce启动task的速度很慢(默认每个心跳间隔是3秒钟),Impala直接通过相应的服务进程来进行作业调度,速度快了很多。

3、Impala完全抛弃了MapReduce这个不太适合做SQL查询的范式,而是像Dremel一样借鉴了MPP并行数据库的思想另起炉灶,因此可做更多的查询优化,从而省掉不必要的shuffle、sort等开销。

4、通过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的不必要开销。

5、用C++实现,做了很多有针对性的硬件优化,例如使用SSE指令。

6、使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。

       最后再简单的介绍一个常用的基于分布式文件存储的数据库MongoDB,他 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。在这里为了更好的理解MongoDB,举一个数据结构出来,以供参考。

        至此,大数据平台的入门类工具基本都介绍完了,鉴于是刚开始,只跟大家聊一些概念化的东西,相当于是对整个大数据平台的搭建以及使用有一个初步的概念,为了更好的理解这些工具,后面咱们会通过一个实战项目,更具体的说明一下这些工具的具体用法以及他们在实际运用中是如何紧密配合协作的。

扫码关注微信公众号,与小菜一起进步,共同成长。

© 著作权归作者所有

共有 人打赏支持
小仙女的老苞米
粉丝 8
博文 4
码字总数 4846
作品 0
青岛
私信 提问
如何学习大数据 学大数据有技巧吗

先在的大数据技术人员备受各大企业及用人单位的青睐,因此参加大数据培训学习大数据的人员也在不断的增加,但是关于学习大数据的技巧很 多人不是很清楚,纷纷询问如何才能快速的学好大数据,...

董黎明
09/15
0
0
零基础自学人工智能,看这些资料就够了(300G资料免费送)

为什么有今天这篇? 首先,标题不要太相信,哈哈哈。 本公众号之前已经就人工智能学习的路径、学习方法、经典学习视频等做过完整说明。但是鉴于每个人的基础不同,可能需要额外的学习资料进行...

经济与编程
08/17
0
0
如何搭建高效率的生鲜 B2B 平台(B2B 技术共享第一篇)

很开心在这里和大家交流,我们是一群生鲜B2B的创业者,在生鲜领域创业三年多;我们也是一群工程师,致力于通过互联网产品和技术让我们的农业更轻松更健康,我们是来自宋小菜的产品技术团队,...

Scott
06/11
0
0
小菜学设计模式——单一职责原则

背景 本文标题为什么叫小菜学习设计模式,原因是本文内容主要是学习《大话设计模式》时的笔记摘要部分,当然,并不是记录书中小菜的学习过程,这个完全没有意义,而是指本人学习设计模式的成...

learn_more
2015/05/25
141
0
大数据、人工智能的出现给每个人造成的影响居然那么大!这是程序员的福音......

《人类简史》作者尤瓦尔·赫拉利说:“人类从来没有做过什么自由的选择,你听从内心想法做出的一切选择,都是经过生物计算输出的结果。” 找对象,看大数据 我们往往在做出决定的时候都会在大...

uzv80px5v412ne
2017/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部