如何通过sqoop将数据从sql server导入hdfs
我已经安装了hadoop,hive,sqoop。我从我的数据库中导入表格到hdfs,但无法将其导入配置单元。我需要在配置单元中配置任何文件吗?另外,当我浏览网页时,配置显示为MySQL,但我使用驱动程序jdbc:sqlserver。 任何人都请帮助我,因为我坚持这一点,因为很多天。如何通过sqoop将数据从sql server导入hdfs
您应该能够使用--hive进口标志 检查导入表,看看它在蜂房如果定义所有的全局变量,HADOOP_HOME,SQOOP_HOME和HIVE_HOME 如果它不为你工作,同时您可以始终使用CREATE EXTERNAL TABLE语法在Hive中使用导入的数据。
您是否在sqoop命令行中使用了特定的--hive-import开关?
Sqoop进口--connect '的jdbc:SQLSERVER://sqlservername.mycompany.com;用户名= Hadoop的;密码= Hadoop的;数据库= Hadoop的' --table dataforhive --hive进口
在HDFS的道路上刚刚创建外部蜂巢表。或使用--hive-import
这两者中的任何一个都应该适合你。
我也有同样的问题,我可以将我的MYSQL表存储在HDFS中,但无法将其存储在配置单元中。我简单地使用以下命令将配置表导入到配置单元中,而无需再将其存储在HDFS中,并且它对我很有用。
sqoop import --connect jdbc:mysql://ipAddress:portNo/mysqldatabase --table mysqltablename --username mysqlusername --password mysqlpassword --hive-import --hive-table hivedatabase.hivetablename
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"
这也将进口它进入HDFS,但在Hive Metastore的默认目录中,即Hive正在管理为你存储数据的地方。这与CREATE TABLE和CREATE EXTERNAL TABLE之间的区别有关。看到这个问题以及http://*.com/questions/27991258/how-to-create-external-table-in-hive-using-sqoop-need-suggestions – Davos 2017-03-30 03:34:54