hive udf 源码 连接mysql_Hive扩展功能(三)--使用UDF函数将Hive中的数据插入MySQL中

本文介绍了如何在Hive中使用UDF(用户定义函数)将数据插入MySQL数据库。首先,需要在Hive中创建一个临时函数,然后通过调用这个函数并指定MySQL的连接信息和SQL语句,将Hive表中的数据写入到MySQL的特定表中。在实践中,需要注意函数的使用方式和SQL语句的格式,以及处理可能出现的错误返回信息。
摘要由CSDN通过智能技术生成

软件环境:

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

---

####说明:

使用UDF函数将Hive中的数据插入MySQL中, 需先在Hive中创建一个UDF临时函数, 然后通过该临时函数将数据从Hive插入到MySQL中

---

####1.创建临时函数

启动Hive服务, 在Hive中创建UDF临时函数, 如以下例子: (dboutput: 临时函数名)

CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput';

---

####2.将hive表中的数据直接插入mysql中

####规范:

select dboutput('jdbc:mysql://localhost/dbName','userName','passWord','INSERT INTO mysqlTableName(column1, column2, column3, column4) VALUES (?,?,?,?)', column1, column2, column3, column4) from hiveTableName;

####例子:

select dboutput('jdbc:mysql://m1/result','root','123','INSERT INTO bill_comp_archive(time, uid, billId, archiveId) VALUES (?,?,?,?)', time,uid,billId,archiveId) from bill_comp_archive;

####语法解析:

dboutput: 临时函数

m1: 目标mysql所在的主机的IP地址或主机名

result: 目标mysql中的数据库名

root: 登录mysql的用户名

123: 登录mysql的密码

INSERT INTO bill_comp_archive: "bill_comp_archive"为mysql中的表名

VALUES (?,?,?,?): 括号中的为字段的数据类型, ?表示通用的数据类型

from bill_comp_archive: "bill_comp_archive"为hive中的数据库

---

####3.报错返回信息

输出有3个:

0: 成功

1: SQL语法错误

2: 数据库连接错误

---

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值