在Hadoop大数据存储库库中使用SQL (Apache Hive)
本文译自 https://community.intersystems.com/post/using-sql-apache-hive-hadoop-big...
大家好,
在使用Spark做Hadoop时,InterSystems IRIS有一个很好的连接器。但市场上也提供了大数据Hadoop访问的其他优秀替代方案-Aparche Hive。请看区别:
HIVE |
SPARK |
Hive是一个数据库,用类似于RDBMS数据库的表格形式存储数据。 |
Spark不是一个数据库,它是一个数据分析框架,可以在内存中对大至PB字节的大容量数据进行复杂的数据分析。 |
使用称作HiveQL的自己的SQL引擎,数据可以从Hive中抽取出来。只能使用SQLs来抽取数据。 |
Spark既能使用复杂SQLs(Complex SQLs)也能使用MapReduce机制进行数据分析。它支持Java, Scala 和Python写的分析框架。 |
Hive在Hadoop之上运行。 |
Spark没有自己专用的存储。实际上,它是从外部的分布式数据存储如运行在Hadoop和MongoDB上的Hive、HBase中抽取数据。 |
Hive是一个基于数据仓库技术的数据库 |
Spark更适合在内存中进行复杂和快速的数据分析以及对数据进行流式处理。 |
对于那些需要在可横向扩展的RDBMS数据库上运行数据仓库操作的应用来说,Hive是最适合的。 |
Spark最适合于那些要求比MapReduce机制更快地进行大数据分析的应用。 |
来源: https://dzone.com/articles/comparing-apache-hive-vs-spark
我做了一个PEX互操作性服务,可以让你在你的InterSystems IRIS应用内部使用Apache Hive。请试用如下步骤:
1. 在iris-hive-adapter 项目上做一个Git Clone:
$ git clone https://github.com/yurimarx/iris-hive-adapter.git
2. 在这个目录内打开terminal 并运行:
$ docker-compose build
3. 运行IRIS容器:
$ docker-compose up
4. 打开项目中的Hive Prouction,运行一个Hello样例):
http://localhost:52773/csp/irisapp/EnsPortal.ProductionConfig.zen?PRODUCTION=dc.irishiveadapter.HiveProduction
5. 点击“开始”运行Production.
6. 现在我们来测试应用!
7. 运行你的REST客户端应用程序(比如Postman),在body部分使用项目的URLS和命令(使用POST请求):
7.1 在大数据中生成一个新的表:POST http://localhost:9980/?Type=DDL. 在BODY中: CREATE TABLE helloworld (消息字符串)
7.2 在表中插入: POST http://localhost:9980/?Type=DDL. 在BODY中: INSERT INTO helloworld VALUES ("hello")
7.3 T从表中得到结果清单: POST http://localhost:9980/?Type=DML. 在BODY中: SELECT * FROM helloworld (注意:这里的类型是)
现在,你有了2个在IRIS中使用大数据的选项:Hive 或者Spark。希望你喜欢。