posts - 110, comments - 101, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
最近使用sqoop把数据从oracle导入到hbase 遇到各种问题 耗了很多时间
遇到的异常在网上也没找到过先例 可能有朋友也遇到了这样的问题
整理一下 留在这里 欢迎拍砖 看到的朋友 如果有更好的方法 可以回复 一起学习
使用sqoop 导mysql的数据时 一切顺利很方便 
导oracle的时候 问题就来了
--query命令: 使用这个命令的时候 需要注意的是 where后面的参数,$CONDITIONS 这个参数必须加上
而且存在单引号与双引号的区别,如果--query后面使用的是双引号 那么需要在$CONDITIONS\ \$CONDITIONS

./sqoop import --connect jdbc:oracle:thin:@192.168.8.130:1521:dcshdev --username User_data2 --password yhdtest123qa --query "select * from so_ext t where \$CONDITIONS " -m 4 --hbase-create-table --hbase-table hso --column-family so --hbase-row-key id --split-by id

如果使用--columns指令来指定字段 也出现了问题
因为在一行中写太多命令是不可能的,--columns 如果字段太多在命令中写也不方便
所以使用shell脚本要方便的多
那么在脚本中换行使用 \  来换行

有个问题就是 使用--columns 指定的字段大小写要注意 得使用小写。
如果使用大写 导数据不会有异常 会成功的,hbase中表也会创建好,但是scan的时候 你会发现没有数据 这个蛋疼吧
--columns id,order_id,order_code
而且每个字段之间用逗号分隔,但是不能有空格,在sqoop中没有处理空格,如果在这个命令后的参数有空格的话
就不能和oracle表中的字段对应上了 结果虽然没有错误能够显示成功导入多了条数据,但是scan的时候 会是0条数据

关于导mysql和oracle的时候 还有个区别:
导mysql表的数据时 不需要指定太多的命令就可以成功导入,但是oracle就需要很多命令 ,如--split-by 这个切分参数
在导mysql的时候 就不需要 ,但是如果在导oracle的时候 不加上就会出错了 不信你试试






评论

# re: sqoop mysql\oracle数据导入到hbase 各种异常解决 --columns指定字段 细节注意  回复  更多评论   

2012-11-15 16:58 by 风雨无语
我使用sqoop从oracle导入数据到hbase中,表创建了,但是没有数据,没报错,是什么原因

# re: sqoop mysql\oracle数据导入到hbase 各种异常解决 --columns指定字段 细节注意  回复  更多评论   

2013-05-15 18:29 by 赵坤
我也是使用sqoop从oracle导入数据到hbase中,表创建了,但是没有数据,没报错,是什么原因

# re: sqoop mysql\oracle数据导入到hbase 各种异常解决 --columns指定字段 细节注意  回复  更多评论   

2014-04-22 13:38 by jacos
Will not attempt to authenticate using SASL (unknown error)

"main" java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.JobContext, but class was expected
at org.apache.sqoop.mapreduce.DelegatingOutputFormat.checkOutputSpecs(DelegatingOutputFormat.java:63)
at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:456)

这2个异常
我的报这个错误。查询mysql上的数据可以查询出来,导入的时候就不行。

# re: sqoop mysql\oracle数据导入到hbase 各种异常解决 --columns指定字段 细节注意  回复  更多评论   

2014-07-02 15:53 by Hartwell
@jacos
你这个问题解决了吗?
我导入mysql的时候,也是报这个异常

只有注册用户登录后才能发表评论。


网站导航: