gpt4 book ai didi

hadoop - 如何更改 sqoop Metastore?

转载 作者:可可西里 更新时间:2023-11-01 14:20:59 26 4
gpt4 key购买 nike

我使用的是 sqoop 1.4.2 版本。我正在尝试将 sqoop Metastore 从默认的 hsqldb 更改为 mysql。

我在 sqoop-site.xml 文件中配置了以下属性。

    <property>
<name>sqoop.metastore.client.enable.autoconnect</name>
<value>false</value>
<description>If true, Sqoop will connect to a local metastore
for job management when no other metastore arguments are
provided.
</description>
</property>
<property>
<name>sqoop.metastore.client.autoconnect.url</name>
<value>jdbc:mysql://ip:3206/sqoop?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>sqoop.metastore.client.autoconnect.username</name>
<value>userName</value>
</property>
<property>
<name>sqoop.metastore.client.autoconnect.password</name>
<value>password</value>
</property>
</configuration>

当我尝试使用元连接 url 创建 sqoop 作业时,它无法连接到已配置的 mysql 数据库。

sqoop job --create --meta-connect {mysql_jdbc_url} sqoop job defination

它抛出以下异常。

    14/06/06 15:04:54 INFO sqoop.Sqoop: Running Sqoop version: 1.4.4.2.0.6.1-101
14/06/06 15:04:55 WARN hsqldb.HsqldbJobStorage: Could not interpret as a number: null
14/06/06 15:04:55 ERROR hsqldb.HsqldbJobStorage: Can not interpret metadata schema
14/06/06 15:04:55 ERROR hsqldb.HsqldbJobStorage: The metadata schema version is null
14/06/06 15:04:55 ERROR hsqldb.HsqldbJobStorage: The highest version supported is 0
14/06/06 15:04:55 ERROR hsqldb.HsqldbJobStorage: To use this version of Sqoop, you must downgrade your metadata schema.
14/06/06 15:04:55 ERROR tool.JobTool: I/O error performing job operation: java.io.IOException: Invalid metadata version.
at org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.init(HsqldbJobStorage.java:202)
at org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.open(HsqldbJobStorage.java:161)
at org.apache.sqoop.tool.JobTool.run(JobTool.java:274)
at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:222)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:231)
at org.apache.sqoop.Sqoop.main(Sqoop.java:240)

sqoop 1.4.2 是否支持除 hsql db 之外的 metastore?

请提出建议。

最佳答案

答案是肯定的,就我而言,我使用的是 PostgreSQL。我最近遇到了这个,我使用的是 1.4.4 版。我不确定我所做的是否是推荐的方法,但它确实有效。这是我遵循的步骤

  1. 在我配置的 sqoop-site.xml 中,连接到我的数据库的字符串、用户名和密码。

  2. 在数据库中创建了以下对象,因为 Sqoop 失败了。

    创建表 SQOOP_ROOT (
    版本 INT,
    propname VARCHAR(128) 不为空,
    支持 VARCHAR(256),
    CONSTRAINT SQOOP_ROOT_unq UNIQUE(版本,propname)
    );

  3. 插入了下一行(这似乎是您的脚本失败的原因)

    插入
    SQOOP_ROOT
    值(value)(
    无效的,
    'sqoop.hsqldb.job.storage.version',
    '0'
    );

我认为正确的方法可能是下载源代码,然后扩展org.apache.sqoop.metastore.JobStorage 与您的 DB 实现。

关于hadoop - 如何更改 sqoop Metastore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com