|NO.Z.00002|——————————|^^ 报错 ^^|——|Hadoop&Hive.V02|——|Hive.v02|sqoop创建job报错|缺省java-json.jar包|password文件格式错误|

附录一:报错处理一:
~~~     [sqoop创建job缺省java-json.jar]——NoClassDefFoundError: org/json/JSONObject                 
~~~     [sqoop创建job的password文件格式错误]——java.sql.SQLException 
### --- 报错现象:sqoop执行job报错:org/json/JSONObject

~~~     # 创建 sqoop job
[root@linux123 ~]# sqoop job --create myjob1 -- import \
--connect jdbc:mysql://linux123:3306/sqoop \
--username hive \
--password-file /sqoop/pwd/sqoopPWD.pwd \
--table goodtbl \
--incremental append \
--hive-table mydb.goodtbl \
--hive-import \
--check-column serialNumber \
--last-value 0 \
-m 1
~~~     # 注:import与"--"之间必须要有一个空格
~~~ 输出参数 报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43)
at org.apache.sqoop.SqoopOptions.writeProperties(SqoopOptions.java:785)
at org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.createInternal(HsqldbJobStorage.java:399)
......
### --- 报错分析

~~~     sqoop缺少java-json.jar包.
### --- 解决方案

~~~     这是因为sqoop缺少java-json.jar包.
~~~     下载java-json.jar包:http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm
~~~     把java-json.jar添加到../sqoop/lib目录:cp java-json.jar  /sqoop/lib

附录二:报错处理二:
### --- 报错现象:password文件格式不对

~~~     # 创建 sqoop job
[root@linux123 ~]# sqoop job --create myjob1 -- import \
--connect jdbc:mysql://linux123:3306/sqoop \
--username hive \
--password-file /sqoop/pwd/sqoopPWD.pwd \
--table goodtbl \
--incremental append \
--hive-table mydb.goodtbl \
--hive-import \
--check-column serialNumber \
--last-value 0 \
-m 1
~~~ 输出参数

Error executing statement: java.sql.SQLException: Access denied for user 'hivee'@'hadoop2
ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access denied for user 'hivee'@'hadoop2' (using password: YES)
java.sql.SQLException: Access denied for user 'hivee'@'hadoop2' (using password: YES)
ERROR tool.ImportTool: Import failed: java.io.IOException: No columns to generate for ClassWriter
 
### --- 报错分析

~~~     这是由于password文件格式不对的原因导致:
### --- 解决方案:

~~~     # 正确的创建格式为
echo -n "12345678" > sqoopPWD.pwd
hdfs dfs -mkdir -p /sqoop/pwd
hdfs dfs -put sqoopPWD.pwd /sqoop/pwd
hdfs dfs -chmod 400 /sqoop/pwd/sqoopPWD.pwd
~~~     使用--password参数将有警告,并且需要输入密码才能执行Job,所以建议用密码文件形式
~~~     注意:使用密码文件有俩种使用方式

1>: --password-file file:///root/a.txt        // 这种方式是使用服务器上的文件
2>: --password-file  /input/a.txt             // 这种方式是使用HDFS上的文件

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(44)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示