我是靠谱客的博主 追寻香氛,最近开发中收集的这篇文章主要介绍Hive扩展功能(三)--使用UDF函数将Hive中的数据插入MySQL中,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

软件环境:

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: 数据库连接错误




最后

以上就是追寻香氛为你收集整理的Hive扩展功能(三)--使用UDF函数将Hive中的数据插入MySQL中的全部内容,希望文章能够帮你解决Hive扩展功能(三)--使用UDF函数将Hive中的数据插入MySQL中所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部