linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8
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中node
启动Hive服务, 在Hive中建立UDF临时函数, 如如下例子: (dboutput: 临时函数名)mysql
CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput';
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个: 0: 成功 1: SQL语法错误 2: 数据库链接错误