由FaceBook开发,贡献给APache。
Hive是基于Hadoop的一个 数据仓库 工具,依赖HDFS完成数据存储,依赖于MapReduce处理数据。其本身并不存储数据。Hive 定义了简单的类 SQL 查询语言,称为 HQL,通过编写HiveQL语句,运行具体的MapReduce任务。
1)采用批处理方式处理海量数据。
2)提供了ETL工具。
Hive的体系结构可以分为以下几部分:
Hive 对外提供了三种服务模式,即 Hive 命令行模式(CLI),Hive 的 Web 模式(WUI),Hive 的远程服务(Client)。Hive 远程服务通过 JDBC 等访问来连接 Hive ,这是日常中最需要的方式。
元数据存储在Mysql或Derby中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
由Cloudera公司开发的新型查询系统。
Impala元数据存储在Hive中,不能独立运行,依赖Hive元数据。
Impala执行查询时,不需要转换成MapReduce任务,可以直接与HDFS或HBase进行交互查询,查询效率远远高于Hive。
Impala采用与Hive相同的SQL语法,ODBC驱动程序和用户接口。
Impala主要由Impalad, State Store和CLI组成,执行查询的时候分布在多个节点上进行。
Impalad:负责协调客户端提交变得查询的执行,与HDFS的数据节点运行在同一节点上。
State Store:负责收集分布在集群中各个Impalad进城的资源信息用于查询调度。
CLI: 提供给用户查询使用的命令行工具(Impala Shell使用python实现),同时Impala还提供了Hue,JDBC, ODBC使用接口。
DBeaver中配置的使用JDBC来访问。
其具体执行过程如下:
1、试用场景:
Hive:跑批
Impala:实时交互
2、计算方式:
Hive:依赖于MapReduce框架
Impala:直接分发执行计划到各个Impalad执行查询
3、资源使用情况:
Hive执行过程中,若内存放不下所有数据则会使用外存。
Impala只用内存。
稍微整理了下常用到的大数据分析工具,看下能不能帮到你
1专业的大数据分析工具
2各种Python数据可视化第三方库
3其它语言的数据可视化框架
一、专业的大数据分析工具
1、FineReport
FineReport是一款纯Java编写的、集数据展示(报表)和数据录入(表单)功能于一身的企业级web报表工具,只需要简单的拖拽 *** 作便可以设计复杂的中国式报表,搭建数据决策分析系统。
2、FineBI
FineBI是新一代自助大数据分析的商业智能产品,提供了从数据准备、自助数据处理、数据分析与挖掘、数据可视化于一体的完整解决方案,也是我比较推崇的可视化工具之一。
FineBI的使用感同Tableau类似,都主张可视化的探索性分析,有点像加强版的数据透视表。上手简单,可视化库丰富。可以充当数据报表的门户,也可以充当各业务分析的平台。
二、Python的数据可视化第三方库
Python正慢慢地成为数据分析、数据挖掘领域的主流语言之一。在Python的生态里,很多开发者们提供了非常丰富的、用于各种场景的数据可视化第三方库。这些第三方库可以让我们结合Python语言绘制出漂亮的图表。
1、pyecharts
Echarts(下面会提到)是一个开源免费的javascript数据可视化库,它让我们可以轻松地绘制专业的商业数据图表。当Python遇上了Echarts,pyecharts便诞生了,它是由chenjiandongx等一群开发者维护的Echarts Python接口,让我们可以通过Python语言绘制出各种Echarts图表。
2、Bokeh
Bokeh是一款基于Python的交互式数据可视化工具,它提供了优雅简洁的方法来绘制各种各样的图形,可以高性能地可视化大型数据集以及流数据,帮助我们制作交互式图表、可视化仪表板等。
三、其他数据可视化工具
1、Echarts
前面说过了,Echarts是一个开源免费的javascript数据可视化库,它让我们可以轻松地绘制专业的商业数据图表。
大家都知道去年春节以及近期央视大规划报道的百度大数据产品,如百度迁徙、百度司南、百度大数据预测等等,这些产品的数据可视化均是通过ECharts来实现的。
2、D3
D3(Data Driven Documents)是支持SVG渲染的另一种JavaScript库。但是D3能够提供大量线性图和条形图之外的复杂图表样式,例如Voronoi图、树形图、圆形集群和单词云等。
Python火的原因在于其优点很多。
优点如下:
1、面向对象广
从根本上讲,Python 是一种面向对象的语言。它的类模块支持多态、 *** 作符重载和多重继承等高级概念,并且以Python 特有的简洁的语法和类型,OOP 十分易于使用。事实上,即使你不懂这些术语,仍会发现学习Python 比学习其他OOP 语言要容易得多。
2、免费
Python 的使用和分发是完全免费的。就像其他的开源软件一样,例如,Tcl 、Perl 、Linux 和Apache 。你可以从Internet 上免费获得Python 系统的源代码。复制Python ,将其嵌入你的系统或者随产品一起发布都没有任何限制。实际上,如果你愿意的话,甚至可以销售它的源代码。
但是"免费"并不代表" 无支持"。恰恰相反,Python 的在线社区对用户需求的响应和商业软件一样快。而且,由于Python 完全开放源代码,提高了开发者的实力,并产生了一个很大的专家团队。尽管学习研究或改变一个程序语言的实现并不是对每一个人来说都那么有趣,但是当你知道还有源代码作为最终的帮助和无尽的文档资源是多么的令人欣慰。你不需要去依赖商业厂商。
3、可移植
Python 的标准实现是由可移植的ANSI C 编写的,可以在目前所有的主流平台上编译和运行。例如,如今从PDA 到超级计算机,到处可以见到Python 在运行。Python 可以在下列平台上运行:
Linux 和UNIX 系统
微软Windows 和DOS (所有版本)
Mac OS (包括OS X 和Classic )
BeOS 、OS/2 、VMS 和QNX
实时 *** 作系统,例如,VxWorks 。 Cray 超级计算机和IBM 大型机。 运行Palm OS 、PocketPC 和Linux 的PDA
运行Windows Mobile 和Symbian OS 的移动电话。
4、功能强大
从特性的观点来看,Python 是一个混合体。它丰富的工具集使它介于传统的脚本语言(例如,Tcl 、Scheme 和Perl )和系统语言(例如,C、C++ 和Java) 之间。Python 提供了所有脚本语言的简单和易用性,并且具有在编译语言中才能找到的高级软件工程工具。不像其他脚本语言,这种结合使Python 在长期大型的开发项目中十分有用。
5、可混合
Python 程序可以以多种方式轻易地与其他语言编写的组件"粘接"在一起。例如,Python 的C语言API 可以帮助Python 程序灵活地调用C程序。这意味着可以根据需要给Python 程序添加功能,或者在其他环境系统中使用Python 。
例如,将Python 与C或者C++ 写成的库文件混合起来,使Python 成为一个前端语言和定制工具。就像之前我们所提到过的那样,这使Python 成为一个很好的快速原型工具;首先出于开发速度的考虑,系统可以先使用Python 实现,之后转移至C,根据不同时期性能的需要逐步实现系统。
6、使用简单
运行Python 程序,只需要简单地键入Python 程序并运行就可以了。不需要其他语言(例如,C或C++ )所必须的编译和链接等中间步骤。Python 可立即执行程序,这形成了一种交互式编程体验和不同情况下快速调整的能力,往往在修改代码后能立即看到程序改变后的效果。
Python 提供了简洁的语法和强大的内置工具。实际上,Python 曾有种说法叫做"可执行的伪代码"。由于它减少了其他工具常见的复杂性,当实现相同的功能时,用Python 程序比采用C、C++ 和Java 编写的程序更为简单、小巧,也更灵活。
为什么要学Python?
对于技术人员来说,这算是技术储备,就算现在用不到它,还是要拿来玩一玩,了解它的特性。
对于一个程序员来说,开拓视野很重要,多尝试几门语言没有任何坏处。学习其他的语言有助于你跳出自己之前的局限来看问题。语言限制了你的表达,也限制了你思考问题的方式。多了解一些不同的编程范式,有助于你加深对编程语言的了解。没有什么坏处。只是蜷缩在自己熟悉的东西里永远无法提高。
当然对于大部分人来说,比如大学生在学校里学都是为了过这门课,或者跟风赶时髦。我觉得真正感兴趣的人是少数吧。
以上就是关于大数据专题--Hive 与 impala全部的内容,包括:大数据专题--Hive 与 impala、大数据分析需要哪些工具、python为什么那么火列举一下你们学python的理由....等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)