跟小菜一起学大数据之工具篇(二)
跟小菜一起学大数据之工具篇(二)
小仙女的老苞米 发表于1个月前
跟小菜一起学大数据之工具篇(二)
  • 发表于 1个月前
  • 阅读 18
  • 收藏 0
  • 点赞 0
  • 评论 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,举一个数据结构出来,以供参考。

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

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

标签: Impala Sqoop MongoDB
共有 人打赏支持
粉丝 7
博文 4
码字总数 4846
×
小仙女的老苞米
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: