java 代码 操作sqoop api 转数据 到 hdfs 或者到hbase

这个问题折磨了我一周多了,今天解决完了 写篇博客记录下  ,希望帮到遇到和我一样问题的小伙伴!!!!!!!!!!!!

首先 我们转数据用sqoop转数据的时候一般都是在安装好sqoop环境,用的sqoop的命令去转的数据,很少去写java代码去操作  我这个实现主要是为了通过我的项目去做这个操作!

一般sqoop的命令是这样的

sqoop import  --connect jdbc:oracle:thin:@//192.168.210.1:1521/orcale --username system --password huang --query "select * from CDR_OUT_VISIT where \$CONDITIONS" --hbase-table CDR_OUT_VISIT --column-family f --hbase-row-key ROWKEY --verbose -m 1 --driver oracle.jdbc.OracleDriver

红色是我恩自行配置的  橙色的是必须要带的  如果  where  后面有条件 那么 and  加上橙色的字段

首先确定 你的hbase的版本  我的是1.4的  版本不对的话  最后是会有很多的问题的 因为 hbasae低的版本的jar有些sqoop用到的类没有导致报错 这个及需要换jar包 了 

-----jar包

代码如下:  我的是传参进来的  你们可以参考下

// sqoop抽数据! public static int importHbase(Map<String, String> param) throws Exception { String zookeeperquorum= ReadProperties.getzookeeperQuorum(); Configuration conf = new Configuration(); conf.set("hbase.zookeeper.quorum", zookeeperquorum); conf.set("hbase.zookeeper.property.clientPort", "2181"); ArrayList<String> list = new ArrayList<String>(); list.add("--connect"); list.add(param.get("url")); list.add("--username"); list.add(param.get("userName")); // 数据库的用户名 list.add("--password"); list.add(param.get("pwd")); // 数据库的密码 list.add("--query"); list.add(param.get("query")); list.add("--hbase-table"); list.add(param.get("hbaseTableName"));// 导入hbase指定表 list.add("--column-family"); list.add(param.get("hbaseColumnFamily")); list.add("--hbase-row-key"); list.add(param.get("rowKey"));// 记录边界 // list.add("--hbase-bulkload"); 多任务线程未测试 list.add("-m"); list.add(param.get("m"));// 定义mapreduce的数量 String[] arg = new String[1]; ImportTool importer = new ImportTool(); Sqoop sqoop = new Sqoop(importer); sqoop.setConf(conf); arg = list.toArray(new String[0]); int res = Sqoop.runSqoop(sqoop, arg); if (res == 0) { System.out.println ("成功"); }else { System.out.println("失败"); } return res; }

 

以上 如果在idea中的话是可以正常运行的    但是不能打jar (也不是不能主要是我太笨没办法解决打成jar包的依赖问题),如果打成war包的话 放到tomcat里面运行时可以的但是要注意需要把lib下的包放到项目整体的lib依赖里面 ,记得可能会出现冲突问题,当项目放到tomcat下运行时 需要注意他的运行环境 环境变量里面必须要有大数据的那些环境变量的配置,我是在linux下部署的,要注意  运行还 会报错 记得把错误中提示的环境变量 给加上 就可以了就是这样的应该

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值