Hive扩展功能(六)--HPL/SQL(可使用存储过程)
软件环境:
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.host
m1
hive.server2.thrift.port
10000
```
####2.编辑hplsql-site.xml文件
配置HPL/SQL与Hive的连接, 创建`hplsql-site.xml`文件(若已有则无需创建), 并将以下配置项拷贝到文件中
```
hplsql.conn.default
hive2conn
The default connection profile
hplsql.conn.hiveconn
org.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 database
hplsql.conn.convert.hiveconn
true
Convert SQL statements before execution
hplsql.conn.hive2conn
org.apache.hive.jdbc.HiveDriver;jdbc:hive2://m1:10000
HiveServer2 JDBC connection
hplsql.conn.init.hive2conn
set mapred.job.queue.name=default;
set hive.execution.engine=mr;
use default;
Statements for execute after connection to the database
hplsql.conn.convert.hive2conn
true
Convert SQL statements before execution
hplsql.conn.db2conn
com.ibm.db2.jcc.DB2Driver;jdbc:db2://localhost:50001/dbname;user;password
IBM DB2 connection
hplsql.conn.tdconn
com.teradata.jdbc.TeraDriver;jdbc:teradata://localhost/database=dbname,logmech=ldap;user;password
Teradata connection
hplsql.conn.mysqlconn
com.mysql.jdbc.Driver;jdbc:mysql://localhost/test;user;password
MySQL connection
hplsql.dual.table
default.dual
Single row, single column table for internal operations
hplsql.insert.values
native
How to execute INSERT VALUES statement: native (default) and select
hplsql.onerror
exception
Error handling behavior: exception (default), seterror and stop
hplsql.temp.tables
native
Temporary tables: native (default) and managed
hplsql.temp.tables.schema
Schema for managed temporary tables
hplsql.temp.tables.location
/home/centos/soft/hive/tmp/plhql
LOcation for managed temporary tables in HDFS
hive.server2.thrift.bind.host
m1
hive.server2.thrift.port
10000
```
####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(可使用存储过程)的更多相关文章
- MySQL数据库(六)-- SQL注入攻击、视图、事物、存储过程、流程控制
一.SQL注入攻击 1.什么是SQL注入攻击 一些了解sql语法的用户,可以输入一些关键字 或合法sql,来导致原始的sql逻辑发生变化,从而跳过登录验证 或者 删除数据库 import pymysq ...
- MySQL数据库(六) —— SQL注入攻击、视图、事物、存储过程、流程控制
SQL注入攻击.视图.事物.存储过程.流程控制 一.SQL注入攻击 1.什么是SQL注入攻击 import pymysql conn = pymysql.Connect( user="roo ...
- Hive扩展功能(七)--Hive On Spark
软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这五部机, 每部主机的用户名都为centos ...
- HPL/SQL与CDH5.4.7集成
1.下载hplsql-0.3.13到本地并解压 2.修改plsql,为如下内容 #!/bin/bash export "HADOOP_CLASSPATH=/opt/cloudera/parc ...
- easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
easyui datagrid 禁止选中行 没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...
- 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalS ...
- C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息
C#调用SQL中的存储过程中有output参数,类型是字符型的时候一定要指定参数的长度.不然获取到的结果总是只有第一字符.本人就是由于这个原因,折腾了很久.在此记录一下,供大家以后参考! 例如: ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
随机推荐
- BAT、网易、京东等如何做大数据风控的?
大数据风控目前应该是前沿技术在金融领域的最成熟应用,相对于智能投顾.区块链等还在初期的金融科技应用,大数据风控目前已经在业界逐步普及,从BATJ这样的大企业,到交易规模比较大的网贷平台,再到做现金贷. ...
- sqlacodegen
这个工具可以把数据库的表转成sqlalchemy用的class. 但是 table必须要有主键.否则转化成的是Table类型而不是class root@rijx:/tmp# sqlacodegen - ...
- java中POJO类和DTO类都要实现序列化
java中POJO类和DTO类都要实现序列化 java中POJO类和DTO类都要实现序列化 java中POJO类和DTO类都要实现序列化 序列化:序列化是将对象转换为容易传输的格式的过程.例如,可以序 ...
- C++ new malloc realloc
int* a = new int; 分配了存储空间,但没有赋初值 int* a = new int(10) 分配了存储空间,并赋初值,即*a = 10 int* a = ne ...
- Office 如何打印A4不干胶标签纸
1 下载Label Expert这个软件,注意不是第一个Avery Wizard(卖家可能会送你这个软件,但是送的这款软件是简体中文版的,似乎模板不全,所以最好还是自己下,反正我最后是由于找不到对应的 ...
- 利用FFmpge进行视频压缩(从图像到H264视频流)
对于FFmpeg相信做视频或图像处理这一块的都不会陌生,在网上也能找到非常多相关的代码.但因为版本号不同等原因.往往找到的代码都是须要自行改动才干够用,为此本人希望能尽绵薄之力,将开发包和自行编写的代 ...
- 22、Cocos2dx 3.0游戏开发找小三之音乐与音效:假如世界上没有了音乐,你的耳朵会孤单吗?
重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/30485103 假如世界上没有了音乐,在森林里.我们听 ...
- C 语言宏快速入门
//####### 参照C语言的预处理命令简介 ######## #define 定义一个预处理宏 #undef 取消宏的定义 #include 包含文件命令 #include_next 与#incl ...
- mac 下安装caffe(二)
使用Anaconda Python 1.brew edit opencv args << "-DPYTHON_LIBRARY=#{py_lib}/libpython2.7.#{d ...
- [C]if (CONDITION)语句中CONDITION的情况
编译环境: Ubuntu 12.04: gcc Windows XP : VS-2005 深入一下if (CONDITION)语句中CONDITION的情况.即CONDITION何时为真,何时是假. ...