sqoop应用常遇见的问题

sqoop使用测试(JDBC可用ip也可用tns):

/usr/bin/sqoop  list-databases \
--connect jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xx.xx)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = xxx)))  \
--username  xxx \
--password xxx

##注意:jdbc中的配置的tns中间不能存在空格,否则会报错

sqoop  list-databases \
--connect jdbc:mysql://node1:3306/  \
--username  xxx \
--password xxx

在集群中初始使用sqoop的时候可能遇见如下错误

问题1:

ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: oracle.jdbc.OracleDriver

原因:此报错是有与服务器缺少jdbc的jar包
方案:网上下载并上传ojdbc6.jar到服务器即可
    cp ojdbc6.jar  /opt/cloudera/parcels/CDH/lib/sqoop/lib/

问题2:
ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException
原因:sqoop测试报错,空指针异常;由于目标服务器与本机网络不通,测试ping不通
方案:开通网络权限即可。

注意:用户名密码不对也会报NullPointerException,确保DB已经用户名密码正确。

问题3:
/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.

原因:主要是因为Sqoop加载$ACCUMULO_HOME环境变量,没有找到所以做出警告,其实也可以忽略

解决:导入$ACCUMULO_HOME变量
#创建accumulo文件夹
sudo mkdir /var/lib/accumulo
#导入accumulo变量

export /var/lib/accumulo

问题4:sqoop执行报错:
failed with state FAILED due to: Job setup failed : org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/tmp/db/xxx":hdfs:supergroup:drwxr-xr-x
原因:  用的root用户执行的脚本,无权限访问hdfs中的目录
方案:暂时切换换其他可执行用户。永久:将此用户加入到组中
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值