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

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

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

 

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

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

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

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

二、省掉了MapReduce做业启动的开销。MapReduce启动task的速度很慢(默认每一个心跳间隔是3秒钟),Impala直接经过相应的服务进程来进行做业调度,速度快了不少。微信

三、Impala彻底抛弃了MapReduce这个不太适合作SQL查询的范式,而是像Dremel同样借鉴了MPP并行数据库的思想另起炉灶,所以可作更多的查询优化,从而省掉没必要要的shuffle、sort等开销。网络

四、经过使用LLVM来统一编译运行时代码,避免了为支持通用编译而带来的没必要要开销。数据结构

五、用C++实现,作了不少有针对性的硬件优化,例如使用SSE指令。分布式

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

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

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

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

相关文章
相关标签/搜索