如何将表从sql server通过sqoop导入到hdfs

时间:2012-08-01 14:58:34

标签: hadoop hive sqoop

我安装了hadoop,hive,sqoop。我将表从我的数据库导入到hdfs,但无法将其导入到hive。我是否需要在配置单元中配置任何文件?此外,当我浏览网页时,显示了MySQL的配置,但我使用的是驱动程序jdbc:sqlserver。 任何人都请帮助我,因为我很多天都坚持这个。

6 个答案:

答案 0 :(得分:2)

jdbc:mysql是针对mysql的,它不适用于sqlserver,我尝试过使用它并且它发出了错误。我已经尝试了以下命令,它工作得非常好。

命令 - 导入

将数据从数据库表复制到HDFS文件系统

在下面的示例中,我们的数据库& hdfs配置是:

  • 服务器名称: - labDB
  • 数据库名称: - 演示
  • SQL用户名: - sqoop
  • SQL密码: - simp1e
  • 驱动程序类名称: - com.microsoft.sqlserver.jdbc.SQLServerDriver
  • 表: - dbo.customers
  • 目标目录:/ tmp / dbo-customer(HDFS文件夹名称)

语法:

  sqoop import --connect jdbc:sqlserver://sqlserver-name \
      --username <username> \
      --password <password> \
      --driver   <driver-manager-class> \
      --table    <table-name> \
      --target-dir  <target-folder-name>

示例:

  sqoop import --connect "jdbc:sqlserver://labDB;database=demo" \
       --username sqoop  \
       --password simp1e \
       --driver   com.microsoft.sqlserver.jdbc.SQLServerDriver \
       --table    "dbo.customer" \
       --target-dir  "/tmp/dbo-customer"

https://danieladeniji.wordpress.com/2013/05/06/hadoop-sqoop-importing-data-from-microsoft-sql-server/

答案 1 :(得分:1)

您应该能够使用--hive-import标志导入表并在Hive中查看它 检查是否已定义所有全局变量,HADOOP_HOME,SQOOP_HOME和HIVE_HOME 如果它不适合您,同时您可以始终使用CREATE EXTERNAL TABLE语法在Hive中使用导入的数据。

答案 2 :(得分:0)

您是否在sqoop命令行中使用了特定的--hive-import开关?

Sqoop import --connect'jdbc:sqlserver://sqlservername.mycompany.com; username = hadoop; password = hadoop; database = hadoop'-table dataforhive - hive-import < / p>

答案 3 :(得分:0)

答案 4 :(得分:0)

只需在hdfs中的路径上创建一个外部配置单元表。或使用--hive-import

这两个中的任何一个都适合你。

答案 5 :(得分:0)

我也有同样的问题,我可以将我的MYSQL表存储在HDFS中,但无法将其存储在hive中。我简单地使用以下命令在hive中导入表,而不再将其存储在HDFS中,它对我有用。

sqoop import --connect jdbc:mysql://ipAddress:portNo/mysqldatabase --table mysqltablename --username mysqlusername --password mysqlpassword --hive-import --hive-table hivedatabase.hivetablename