1

当我通过命令时:

$sqoop create-hive-table --connect 'jdbc:sqlserver://10.100.0.18:1433;username=cloud;password=cloud123;database=hadoop' --table 集群

出现一些错误和警告,最后它说,无法启动数据库'/var/lib/hive/metastore/metastore_db',有关详细信息,请参阅下一个异常[再次显示导入错误列表]

最后它说 hive 以 satus 9 退出

这里有什么问题?我是 sqoop 和 hive 的新手。请任何人帮助我。

4

5 回答 5

1

正确的语法是

sqoop import --connect 'jdbc:sqlserver://10.100.0.18:1433/hadoop' --username cloud --password cloud123 --table cluster --hive-import

于 2016-04-27T10:42:17.503 回答
0

我想您可能想检查您是否对指定目录具有写入权限,以及是否正在创建名为 metastore_db 的目录

于 2013-04-21T20:19:53.580 回答
0

你的语法全错了。语法是 $sqoop 工具名称 [工具参数]

$sqoop import --create-hive-table --connect 'jdbc:sqlserver://10.100.0.18:1433/hadoop' --username cloud --password cloud123 --table cluster

于 2014-02-04T16:20:10.670 回答
0

当您使用默认 Hive 配置运行 Sqoop 时,通常会显示此消息。Hive 默认使用仅在非常基本的测试用例中可用的 derby 数据存储。我建议重新配置您的配置单元实例以使用其他一些关系数据库作为数据存储后端(MySQL、PostgreSQL、Oracle)。

于 2013-04-22T02:48:02.703 回答
0

使用 sqoop 粘贴 hive 导入的示例调用。这可能会帮助您进一步更正语法。请记住,基本上您需要提供以下命令才能使其工作。

sqoop import --connect jdbc:mysql://localhost/RAWDATA --table geolocation --username root --password hadoop  --hive-import  --create-hive-table --driver com.mysql.jdbc.Driver --m 1 --delete-target-dir
  1. --connect,其中读取 / RAWDATA的部分是您的 mysql 实例中的数据库名称,其中包含地理位置表。您可以在 mysql 中执行“显示数据库”和“显示表”命令来检查您的数据库和表。
  2. --delete-target-dir选项用于安全。它将确保 sqoop 在将文件移动到配置单元之前删除它为写入文件而创建的 tmp 目录。这将避免目录已经存在的不必要错误,以防您重试该命令。
  3. 仅当您尚未在 hive 中创建目标表时才需要--create-hive-table 。如果您之前运行的 sqoop 命令已经创建了表,那么您可以完全忽略此选项。检查您的配置单元数据库是否存在目标配置单元表。
  4. --driver是执行任何数据库连接的命令的必需部分。确保找到驱动程序库的正确路径或尝试谷歌搜索选项。您可以先尝试上面粘贴的那个,看看它是否有效。您可以返回此论坛寻求帮助。
  5. 请记住,我们没有提到将在 hive 中创建表的哪个数据库,因此它将在 hive 的默认数据库中。我没有给出那个选项,因为你只是从 sqoop 开始。
于 2018-10-26T18:01:52.730 回答