【发布时间】:2017-06-13 14:30:04
【问题描述】:
我已经安装了 hadoop、hive、sqoop。我将表从我的数据库导入到 hdfs 但无法将其导入配置单元。我需要在 hive 中配置任何文件吗?此外,当我浏览网页时,显示的是 MySQL 的配置,但我使用的是驱动程序 jdbc:sqlserver。 任何人都请帮助我,因为我已经坚持了很多天了。
【问题讨论】:
我已经安装了 hadoop、hive、sqoop。我将表从我的数据库导入到 hdfs 但无法将其导入配置单元。我需要在 hive 中配置任何文件吗?此外,当我浏览网页时,显示的是 MySQL 的配置,但我使用的是驱动程序 jdbc:sqlserver。 任何人都请帮助我,因为我已经坚持了很多天了。
【问题讨论】:
jdbc:mysql 是用于 mysql 的,它不适用于 sqlserver,我已经尝试使用它,但它给出了错误。我试过下面的命令,效果很好。
命令 - 导入
从数据库表复制数据到 HDFS 文件系统
在下面的例子中,我们的数据库和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"
【讨论】:
您应该能够使用 --hive-import 标志导入表并在 Hive 中查看它 检查你是否定义了所有的全局变量,HADOOP_HOME、SQOOP_HOME 和 HIVE_HOME 如果它不适合您,同时您可以随时使用 CREATE EXTERNAL TABLE 语法在 Hive 中使用您导入的数据。
【讨论】:
你是否在 sqoop 命令行中使用了特定的 --hive-import 开关?
Sqoop import --connect 'jdbc:sqlserver://sqlservername.mycompany.com;username=hadoop;password=hadoop;database=hadoop' --table dataforhive --hive-import
【讨论】:
只需在 hdfs 的路径上创建一个外部配置单元表。或使用 --hive-import
这两者中的任何一个都应该适合你。
【讨论】:
我也遇到了同样的问题,我可以将我的 MYSQL 表存储在 HDFS 中,但无法将其存储在 hive 中。我使用以下命令简单地将表导入配置单元中,而无需再次将其存储在 HDFS 中,它对我有用。
sqoop import --connect jdbc:mysql://ipAddress:portNo/mysqldatabase --table mysqltablename --username mysqlusername --password mysqlpassword --hive-import --hive-table hivedatabase.hivetablename
【讨论】: