zoukankan      html  css  js  c++  java
  • 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

    
    
    
    ---
    <br>
    <br>
    ####说明:
    使用UDF函数将Hive中的数据插入MySQL中, 需先在Hive中创建一个UDF临时函数, 然后通过该临时函数将数据从Hive插入到MySQL中
    
    
    ---
    <br>
    ####1.创建临时函数
    启动Hive服务, 在Hive中创建UDF临时函数, 如以下例子: (dboutput: 临时函数名)
    

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

    
    
    
    ---
    <br>
    ####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中的数据库

    
    
    ---
    <br>
    ####3.报错返回信息
    

    输出有3个:
    0: 成功
    1: SQL语法错误
    2: 数据库连接错误

    
    
    ---
    <br>
    <br>
    <br>
  • 相关阅读:
    POJ 1837 (DP)
    POJ 2255(分治递归)
    红球多于白球的概率(分治递归)
    HDOJ 4039 (Data_Structure)
    管道问题(prim)
    寻找给定区间内第K小的数(分治递归)
    大数加法
    1000元购物券 (分治递归)
    POJ 1308(并查集) (Data_Structure)
    我的2012年还不是世界末日
  • 原文地址:https://www.cnblogs.com/qifengle-2446/p/6424513.html
Copyright © 2011-2022 走看看