文档章节

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

小仙女的老苞米
 小仙女的老苞米
发布于 2017/09/06 21:38
字数 1617
阅读 51
收藏 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,举一个数据结构出来,以供参考。

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

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

© 著作权归作者所有

小仙女的老苞米
粉丝 7
博文 5
码字总数 5794
作品 0
青岛
私信 提问
加载中

评论(0)

如何学习大数据 学大数据有技巧吗

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

董黎明
2018/09/15
19
0
win10彻底禁用自动更新,win10怎样彻底关闭自动更新,永久关闭win10自动更新,win10更新助手

首先,请广大win10受害者原谅小菜用一个如此长的标题来吸引你们,为了尽最大努力帮助那些饱受win10自动更新折磨的朋友们,小菜不得已出此下策,望见谅! windows 10是一个神奇的操作系统,当...

杨元
2019/03/18
0
0
java——获取视频某一帧的图片

  最近小菜有幸接触模仿淘宝评论的功能,难点主要就在视频和图片的轮播,主要是前端处理img和video标签的交替使用,这块的内容分享在上篇博客中会有,本篇博客小菜主要分享一下如何从获取的...

smile*_*ing*
2019/02/17
0
0
Flutter 88: 初识状态管理 Bloc (三)

小菜刚学习了 FlutterBloc 的基本用法,使用的场景还很简单,主要是单一 Bloc 的应用,今天小菜继续尝试多个 Bloc 共用的场景; 小菜继续完善前两节的 Demo,添加了随机变更背景色的功能(并没...

阿策~
05/14
0
0
运维学python之爬虫高级篇(六)scrapy模拟登陆GitHub和51cto

上一篇介绍了如何爬取豆瓣TOP250的相关内容,今天我们来模拟登陆GitHub。 1 环境配置 2 爬取前分析 分析登陆提交信息 分析登陆信息我使用的是fiddler,fiddler的使用方法就不作介绍了,大家可...

578384
2018/02/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

屏蔽nginx默认页面或者openresty默认页面

openresty是对nginx做了一层封装,屏蔽nginx或者openresty的默认页面的方法是一样的,就是对nginx/html/index.html进行修改即可。 ssh nginx@126.10.*.* // 使用ssh进行登录,根据提示输入密...

osc_2wznp7fr
40分钟前
23
0
基于Python的arcgis二次开发和ENVI二次开发

https://www.cnblogs.com/jhlong/p/5394530.html https://search.bilibili.com/all?keyword=arcgis%20python...

osc_gkcftr6g
41分钟前
30
0
[Go] gorm 返回指定模型数据的处理方式

重新 var 声明一个变量,类型为包含指定字段的结构体。 查询的时候,还是使用原始模型类型的变量。 example: // For return data var retMember struct { Hash string `json...

osc_eoffv2le
42分钟前
21
0
Spring boot Access-Control-Allow-Origin 问题解决

import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import or......

osc_3361hjxk
43分钟前
14
0
通过人才测评系统,对程序员岗位进行招聘测评

一、 程序员的基本工作内容 1、 负责项目组内的代码维护和更新迭代,保证研发效率,对于运营产品提出的需求应积极沟通并实现。 2、 规范相关开发文档等相关资料,对于有变更的代码和功能需求...

蛤蟆丸子
44分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部