做有温度的教育!
全国统一咨询热线:400-803-9399
北京
校区
新闻资讯> 技术分享> 【大数据分析】数据查询分析核心技术

【大数据分析】数据查询分析核心技术

时间:2019-09-29
浏览:1089
发布:
赞:231

Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能。Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce。可以将Hive理解为一个客户端工具,将SQL操作转换为相应的MapReduce jobs,然后在hadoop上面运行。


Hive支持标准的SQL语法,免去了用户编写MapReduce程序的过程,它的出现可以让那些精通SQL技能、但是不熟悉MapReduce 、编程能力较弱与不擅长Java语言的用户能够在HDFS大规模数据集上很方便地利用SQL 语言查询、汇总、分析数据。


Hive是为大数据批量处理而生的,Hive的出现解决了传统的关系型数据库(MySql、Oracle)在大数据处理上的瓶颈 。Hive 将执行计划分成map->shuffle->reduce->map->shuffle->reduce…的模型。


如果一个Query会被编译成多轮MapReduce,则会有更多的写中间结果。由于MapReduce执行框架本身的特点,过多的中间过程会增加整个Query的执行时间。在Hive的运行过程中,用户只需要创建表,导入数据,编写SQL分析语句即可。剩下的过程由Hive框架自动的完成。


Impala是对Hive的一个补充,可以实现高效的SQL查询。使用Impala来实现SQL on Hadoop,用来进行大数据实时查询分析。通过熟悉的传统关系型数据库的SQL风格来操作大数据,同时数据也是可以存储到HDFS和HBase中的。Impala没有再使用缓慢的Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以直接从HDFS或HBase中用SELECT、JOIN和统计函数查询数据,从而大大降低了延迟。Impala将整个查询分成一执行计划树,而不是一连串的MapReduce任务,相比Hive没了MapReduce启动时间。


Hive 适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询,Impala给数据人员提供了快速实验,验证想法的大数据分析工具,可以先使用Hive进行数据转换处理,之后使用Impala在Hive处理好后的数据集上进行快速的数据分析。


总的来说:Impala把执行计划表现为一棵完整的执行计划树,可以更自然地分发执行计划到各个Impalad执行查询,而不用像Hive那样把它组合成管道型的map->reduce模式,以此保证Impala有更好的并发性和避免不必要的中间sort与shuffle。但是Impala不支持UDF,能处理的问题有一定的限制。


Spark拥有Hadoop MapReduce所具有的特点,它将Job中间输出结果保存在内存中,从而不需要读取HDFS。Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。


Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具,包括全文搜索和Web爬虫。


Solr用Java编写、运行在Servlet容器(如Apache Tomcat或Jetty)的一个独立的企业级搜索应用的全文搜索服务器。它对外提供类似于Web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。


Elasticsearch是一个开源的全文搜索引擎,基于Lucene的搜索服务器,可以快速的储存、搜索和分析海量的数据。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。


还涉及到一些机器学习语言,比如,Mahout主要目标是创建一些可伸缩的机器学习算法,供开发人员在Apache的许可下免费使用;深度学习框架Caffe以及使用数据流图进行数值计算的开源软件库TensorFlow等,常用的机器学习算法比如,贝叶斯、逻辑回归、决策树、神经网络、协同过滤等。



主题 |数据查询分析

插图 | 网络来源


【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息联系我们,我们将及时沟通与处理。本站内容除非来源注明甲骨文华育兴业,否则均为网友转载,涉及言论、版权与本站无关

相关推荐

java开发培训

简单的 Java 性能调优技巧

​大多数JAVA开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识。好吧,不能说这是完全错误的。优化应用程序以获得最佳性能不是一件容易的事情。但是,这并不意味着如果你不具备这些知识,就不能做任何事情。这里有一些易于遵循的调优方式,大家可以做个参考!

甲骨文华育兴业

JAVA集合框架介绍

 Collection是最基本的集合接口,一个Collection包含一组Object,即Collection的元素。遍历Collection中的元素,可以使用Collection中的方法(Iterator),这个方法会返回迭代子,通过这个迭代子就可以访问集合中的元素了。

甲骨文华育兴业

【大数据干货】Kafka作为大数据的核心技术,你了解多少?

Kafka作为大数据最核心的技术,作为一名技术开发人员,如果你不懂,那么就真的“out”了。DT时代的快速发展离不开kafka,所以了解kafka,应用kafka就成为一种必须。

大数据开发

hadoop的I/O操作

hadoo用户希望系统在存储和处理数据时不会丢失或损坏任何数据,这样数据的完整性就显得尤为重要。HDFS会对写入的所有数据计算校验和并在读取数据时验证校验和,其实HDFS存储着每个数据块的复本,一旦校验数据损坏,就将损坏的数据复制到另一个datanode,然后将这个数据的复本复制到当前需要读取的datanode上,一旦数据读取成功,就将已损坏的数据块删除。hadoop的LocalFileSystem执行客户端的校验和验证,它是通过ChecksumFileSystem来完成自己的任务。   三、压缩   文件压缩与两大好处,减少存储文件所所需要的磁盘空间,并加速数据在网络上的传输,多于大数据量时就就显得更加的重要。压缩的格式有很多种,各有千秋,gzip是一个通用的压缩工具,因为在空间和时间性能上都是比较均衡的。   java中已经提供的API,实现codec接口来完成的一种压缩-解压缩的算法。   前面也说到了,有的压缩格式是不支持输入分片的,也就是说是否可以搜索数据流的任意位置并进一步往下读取数据。很明显gzip是不行的,但是bzip2是可以的,对于MapReduce这种需要分片读取的时候选择什么样的压缩方式就显得尤为重要。   四、序列化   序列化指的是将结构化对象转化为字节流以便在网络上传输或写到磁盘进行永久存储的过程,反序列化是指将字节流转回结构化对象的逆过程。hadoop使用的是自己的序列化格式Writable,它绝对紧凑、速度快,但是不太容易用java以外的语言进行扩展或使用。基于“接口定义语言”(Interface Description Language IDL)的序列化框架有Apache Thrift和Google Protocol Buffers是两个比较流行的序列化框架。   五、Apache Avro   Apache Avro是一个独立于编程语言的数据序列化系统,是由Doug Cutting创建,旨在解决hadoop中Writable类型的不足:缺乏语言的可移植性。拥有一个可以被多种语言处理的数据格式与绑定到单一语言的数据格式相比,前者更易于与公众共享数据集,同时也更具有生命力,该语言将使得数据具有更长的生命周期,即时原先用于读/写该数据的语言已经不再使用。与上面的两种框架相比,Avro数据是与语言无关的模式定义的,但是与其他系统不同的是,代码生成是可选的,并且Avro的模式通常用JSON来写,当然还有一种高级语言称为Avro IDL,可以使用C语言编写。

大数据中hadoop是什么? ps使用 大数据 冲刺Java架构师年薪50W

友情链接: 教育培训 甲骨文华育兴业太原校区 甲骨文华育兴业济南校区 甲骨文华育兴业哈尔滨校区 甲骨文华育兴业长春校区 魔据教育 音乐培训 青海律师

Copyright ©2016-2019. All Rights Reserved. 京ICP备17018991号-4

网站地图