Hive扩展功能(六)--HPL/SQL(可使用存储过程)

摘要:
软件环境:Linux系统:CentOS6.7 Hadoop版本:2.6.5zookeeper版本:3.4.8##主机配置:#######共五台机器,m1、m2、m3。每台计算机的用户名为centros ``` 192.168.179.201:m1192.168.179.202:m2192.168.179.203:m3m1:Zookeeper、Namenode、DataNode、ResourceManager

软件环境:

linux系统: CentOS6.7
Hadoop版本: 2.6.5
zookeeper版本: 3.4.8

##主机配置: ######一共m1, m2, m3这五部机, 每部主机的用户名都为centos ``` 192.168.179.201: m1 192.168.179.202: m2 192.168.179.203: m3

m1: Zookeeper, Namenode, DataNode, ResourceManager, NodeManager, Master, Worker
m2: Zookeeper, Namenode, DataNode, ResourceManager, NodeManager, Worker
m3: Zookeeper, DataNode, NodeManager, Worker





####资料:

搭建教程:
http://lxw1234.com/archives/2015/09/487.htm
下载HPL/SQL地址:
http://www.hplsql.org/download
HPL/SQL官网:
http://www.hplsql.org/doc




---
<br>
####注意事项:
一定不能在`HPL/SQL`上使用`Hive`语法的语句,要使用`MySQL`或`Oracle`等其他`HPL/SQL`支持的数据库(具体可去官网查看),不然会报找不到`dual`表或者`dual`表中无该字段的错误,切记


---
####版本选择:
在`HPL/SQL0.3.17`版本(必须是0.3.17或者0.3.17之后的版本)解决了强制读`From dual`表的问题, 而本次安装的是`Hive2.1.1`版本自带的是`HPLSQL0.3.31`版本, 已解决强制读`From dual`表的问题.
若要解决强制读`From dual`表的问题,应下载一个0.3.17或0.3.17之后版本的`HPL/SQL`, 然后将解压后得到的hplsql-0.3.17.jar包放入`$HIVE_HOME/lib`包下, 并重命名为`hive-hplsql-*.jar`格式的包,如:`hive-hplsql-0.3.17.jar`








---
<br>
<br>
####1.编辑hive-site.xml文件
HPL/SQL与Hive是通过`thrift`方式连接, 编辑`hive-site.xml`, 添加以下配置项
hive.server2.thrift.bind.hostm1hive.server2.thrift.port10000 ```

####2.编辑hplsql-site.xml文件 配置HPL/SQL与Hive的连接, 创建`hplsql-site.xml`文件(若已有则无需创建), 并将以下配置项拷贝到文件中 ``` hplsql.conn.defaulthive2connThe default connection profilehplsql.conn.hiveconnorg.apache.hadoop.hive.jdbc.HiveDriver;jdbc:hive://Hive embedded JDBC (not requiring HiveServer)hplsql.conn.init.hiveconn set mapred.job.queue.name=default; set hive.execution.engine=mr; use default; Statements for execute after connection to the databasehplsql.conn.convert.hiveconntrueConvert SQL statements before executionhplsql.conn.hive2connorg.apache.hive.jdbc.HiveDriver;jdbc:hive2://m1:10000HiveServer2 JDBC connectionhplsql.conn.init.hive2conn set mapred.job.queue.name=default; set hive.execution.engine=mr; use default; Statements for execute after connection to the databasehplsql.conn.convert.hive2conntrueConvert SQL statements before executionhplsql.conn.db2conncom.ibm.db2.jcc.DB2Driver;jdbc:db2://localhost:50001/dbname;user;passwordIBM DB2 connectionhplsql.conn.tdconncom.teradata.jdbc.TeraDriver;jdbc:teradata://localhost/database=dbname,logmech=ldap;user;passwordTeradata connectionhplsql.conn.mysqlconncom.mysql.jdbc.Driver;jdbc:mysql://localhost/test;user;passwordMySQL connectionhplsql.dual.tabledefault.dualSingle row, single column table for internal operationshplsql.insert.valuesnativeHow to execute INSERT VALUES statement: native (default) and selecthplsql.onerrorexceptionError handling behavior: exception (default), seterror and stophplsql.temp.tablesnativeTemporary tables: native (default) and managedhplsql.temp.tables.schemaSchema for managed temporary tableshplsql.temp.tables.location/home/centos/soft/hive/tmp/plhqlLOcation for managed temporary tables in HDFShive.server2.thrift.bind.hostm1hive.server2.thrift.port10000 ```

####3.配置dual表 (此步骤可跳过) 启动Hive服务,依照在`hplsql-site.xml`文件中的配置去创建(默认是在`default`库中创建了`dual`表) ``` use default; create table dual(DUMMY VARCHAR(1)); ```

####4.在使用hplsql存储过程前, 需先启动HiveServer2和Metastore服务 ``` sh $HIVE_HOME/bin/hive --service metastore sh $HIVE_HOME/bin/hive --service hiveserver2 ```



免责声明:文章转载自《Hive扩展功能(六)--HPL/SQL(可使用存储过程)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WKWebView 白屏问题Spark记录-Spark性能优化解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

大数据技术-spark+hive+hbase研究

大数据 spark 研究(0基础入门)一 背景 1 基础 Scala 语言基础:Scala详细总结(精辟版++) spark 介绍    :  spark介绍     二 环境 1 部署spark   <![if !supportLists]>1、<![endif]>环境准备(1)配套软件版本要求: Java 6+  Python...

SQLServer 的存储过程与java交互

一、   存储过程简介 Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。 存储过程相对于其他的数据库访问方法有以下的优点:    (1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。     (2)...

mysql如何修改所有的definer

mysql中的definer是什么,有什么作用? 我们在mysql创建view、trigger、function、procedure、event时都会定义一个Definer=‘xxx’,类似如下: CREATE ALGORITHM =UNDEFINED DEFINER = `root`@`%` SQL SECURITY DEFI...

转:ORACLE的JDBC连接方式:OCI和THIN

oracle的jdbc连接方式:oci和thin     oci和thin是Oracle提供的两套Java访问Oracle数据库方式。     thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行。thin就是纯粹用Java写的ORACLE数据库访问接口。oci是一种胖客...

浅谈Slick(4)- Slick301:我的Slick开发项目设置

前面几篇介绍里尝试了一些Slick的功能和使用方式,看来基本可以满足用scala语言进行数据库操作编程的要求,而且有些代码可以通过函数式编程模式来实现。我想,如果把Slick当作数据库操作编程主要方式的话,可能需要先制定一套比较规范的模式来应付日常开发(也要考虑团队开发)、测试和维护。首先从项目结构来说,我发现由Intellij-Idea IDE界面直接产...

【原创】大数据基础之Hive(5)性能调优Performance Tuning

1 compress & mr hive默认的execution engine是mr hive> set hive.execution.engine;hive.execution.engine=mr 所以针对mr的优化就是hive的优化,比如压缩和临时目录 mapred-site.xml <property>...