2012-08-01 96 views
1

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

回答

1

您应该能够使用--hive进口标志 检查导入表,看看它在蜂房如果定义所有的全局变量,HADOOP_HOME,SQOOP_HOME和HIVE_HOME 如果它不为你工作,同时您可以始终使用CREATE EXTERNAL TABLE语法在Hive中使用导入的数据。

0

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

Sqoop进口--connect '的jdbc:SQLSERVER://sqlservername.mycompany.com;用户名= Hadoop的;密码= Hadoop的;数据库= Hadoop的' --table dataforhive --hive进口

0

在HDFS的道路上刚刚创建外部蜂巢表。或使用--hive-import

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

0

我也有同样的问题,我可以将我的MYSQL表存储在HDFS中,但无法将其存储在配置单元中。我简单地使用以下命令将配置表导入到配置单元中,而无需再将其存储在HDFS中,并且它对我很有用。

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

这也将进口它进入HDFS,但在Hive Metastore的默认目录中,即Hive正在管理为你存储数据的地方。这与CREATE TABLE和CREATE EXTERNAL TABLE之间的区别有关。看到这个问题以及http://stackoverflow.com/questions/27991258/how-to-create-external-table-in-hive-using-sqoop-need-suggestions – Davos 2017-03-30 03:34:54

1

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

命令 - 从数据库表到HDFS进口

复制数据文件系统

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

  • 服务器名称: - labDB
  • 数据库名称: - 演示
  • SQL用户名: - sqoop
  • SQL密码: - simp1e
  • 驱动程序类名称: - com.microsoft.sqlserver.jdbc.SQLServerDriver
  • 表: - dbo。客户
  • 目标目录:/ tmp目录/ DBO - 客户(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/

相关问题