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