大數據之Sqoop(三):java.io.IOException Could not start Java compiler

這兩天做個項目使用到sqoop,這東西以前用過,現在有點忘了,出了點差錯,記錄下來

環境

  • hadoop 2.4.1
  • jdk8
  • sqoop 1.4.6
  • centos7
  • mysql 5.7.x

報錯

[root@mym sqoop]# bin/sqoop import --connect jdbc:mysql://192.168.31.201:3306/company_test --username root --password 123456 --table staff --target-dir /sqoop/test/company_test --delete-target-dir --num-mappers 1 --fields-terminated-by "\t"
Warning: /home/mym/apps/sqoop/bin/../../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /home/mym/apps/sqoop/bin/../../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
20/01/15 20:14:52 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
20/01/15 20:14:52 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
20/01/15 20:14:52 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
20/01/15 20:14:52 INFO tool.CodeGenTool: Beginning code generation
20/01/15 20:14:53 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `staff` AS t LIMIT 1
20/01/15 20:14:53 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `staff` AS t LIMIT 1
20/01/15 20:14:53 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /home/mym/apps/hadoop-2.4.1
20/01/15 20:14:53 ERROR orm.CompilationManager: It seems as though you are running sqoop with a JRE.
20/01/15 20:14:53 ERROR orm.CompilationManager: Sqoop requires a JDK that can compile Java code.
20/01/15 20:14:53 ERROR orm.CompilationManager: Please install a JDK and set $JAVA_HOME to use it.
20/01/15 20:14:53 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Could not start Java compiler.
        at org.apache.sqoop.orm.CompilationManager.compile(CompilationManager.java:187)
        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:108)
        at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:478)
        at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:236)

問題原因

jdk版本不一致。hadoop的hadoop-env.sh的JAVA_HOME和相同環境變量裏的不一致

解決

統一下JAVA_HOME就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章