我是靠谱客的博主 简单溪流,最近开发中收集的这篇文章主要介绍hive udf 源码 连接mysql_hive利用udf函数直接将统计结果导入mysql的方法详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如何把hive中的数据导入到mysql中去,方法很多,在网上找到一个用udf函数直接把hive 中数据导入到mysql中去,按照网上的例子操作了很久也没有导入成功,甚是捉急。。。。。

1、使用udf函数导数据到mysql需要两个jar包

在hive>提示符中:

Hive>add jar /home/hadoop/hive/lib/hive-contrib-0.13.1.jar;

。。。。。。。此去省略执行提示N个字

Hive>add jar /home/hadoop/hive/lib/mysql-connector-java-5.1.17.jar;

。。。。。。。此去省略执行提示N个字

2、为udf函数命名别名红色的字体dboutput,使用起来就方便点

hive>create temporary function dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput';

3、开始导入

Hive>select dboutput('jdbc:mysql://192.168.199.1:3306/dbtest','root','123456','INSERT INTO ep(tid,tname) VALUES (?,?)',tid,tname) from ttv;

----这里只是测试,所以from ttv 后面没带条件也没限制记录数,真实环境就不说了

----ep为mysql中的表,ttv为hive中的表

4、导入时,你会发现执行失败,有错误冒出:java.io.FileNotFoundException: File does not exist: hdfs://mymast:9000/home/hadoop/hive/lib/hive-contrib-0.13.1.jar ,这个就是上面第1条需要增加的两个jar包之一,这个错很明显,就是在hdfs上找不到jar包,马上在hdfs 上创建home/hadoop/hive/lib目录,然后把两个jar都扔进去,错误就解决了。

5、解决错误继续导入:

Hive>select dboutput('jdbc:mysql://192.168.199.1:3306/dbtest','root','123456','INSERT INTO ep(tid,tname) VALUES (?,?)',tid,tname) from ttv;

结果提示任务执行倒是成功了,但是状态码为2,表示导入失败,为0才表示导入成功,又捉急了,在网上找了很久找不到答案。。。。。。一个小时在百度上过去了,抱着试试的心态,想了一下元数据连接名称是hive,是不是用hive可以呢?立马改为hive :

最后

以上就是简单溪流为你收集整理的hive udf 源码 连接mysql_hive利用udf函数直接将统计结果导入mysql的方法详解的全部内容,希望文章能够帮你解决hive udf 源码 连接mysql_hive利用udf函数直接将统计结果导入mysql的方法详解所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部