我如何将表从mysql导入到Hive?

时间:2013-12-09 11:41:15

标签: sqoop

use testhadoop;

CREATE TABLE employee(
  empid INT(2),
  empname varchar(20),
  salray int (6)
);

INSERT INTO employee VALUES
  (1,'emp1',15000),
  (1,'emp1',15000),
  (2,'emp2',12200),
  (3,'emp3',99999),
  (4,'emp4',17687),
  (5,'emp5',45788);

cd $SQOOP_HOME

bin/sqoop import --connect jdbc:mysql://localhost/hadoop --username root -P --table employee --hive-import -verbose -m 1

我收到以下错误,请您为此提供解决方案

ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 1
    at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:364)
    at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:314)
    at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:226)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:415)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:476)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:145)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:181)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:220)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:229)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:238)

3 个答案:

答案 0 :(得分:0)

而不是使用-verbose将其替换为--verbose

bin / sqoop import --connect jdbc:mysql:// localhost / hadoop --username root -P --table employee --hive-import --verbose -m 1

答案 1 :(得分:0)

详细选项用于在屏幕上显示详细的执行详细信息。

详细不是必需的,您可以在不使用详细选项的情况下运行命令。

答案 2 :(得分:0)

假设未创建配置单元

bin/sqoop import --connect jdbc:mysql://localhost/hadoop --username  --password --table employee --hive-table hive_employee --create-hive-table --hive-import -m 1 --verbose

上面的命令将创建名为“hive_employee”的hive表,并将mysql数据导入其中。如果同名表已经存在,则失败。

有关配置单元选项的说明,请参阅here