gpt4 book ai didi

oracle - Sqoop 使用钱包导入

转载 作者:行者123 更新时间:2023-12-02 20:49:39 24 4
gpt4 key购买 nike

Cloudera CDH 5.8.5 中 Sqoop v1.4.6 的钱包使用率存在一些问题。我们的场景:

  • 用户文件夹:/home/myuser
  • 钱包文件夹:/home/myuser/钱包 (cwallet.sso、cwallet.sso.lck、ewallet.p12、ewallet.p12.lck、sqlnet.ora、tnsnames.ora)

  • 钱包配置得很好,就像我运行一样
    sqlplus /@MY_TNS_NAME

    我可以在没有密码的情况下连接到数据库。

    问题出在sqoop上。
    我可以使用以下方法连接到数据库并列出其中的所有表:
    export HADOOP_OPTS="-Doracle.net.tns_admin=/home/myuser/wallet -Doracle.net.wallet_location=/home/myuser/wallet"

    sqoop list-tables --connect "jdbc:oracle:thin:@MY_TNS_NAME"

    如果我尝试使用以下命令将表转储到 HDFS(如建议 here )
    export HADOOP_OPTS="-Doracle.net.tns_admin=/home/myuser/wallet -Doracle.net.wallet_location=/home/myuser/wallet"

    sqoop import -D mapreduce.map.java.opts='-Doracle.net.tns_admin=. -Doracle.net.wallet_location=.' -files /home/myuser/wallet/cwallet.sso,/home/myuser/wallet/ewallet.p12,/home/myuser/wallet/sqlnet.ora,/home/myuser/wallet/tnsnames.ora -libjars "/var/lib/sqoop/oraclepki.jar,/var/lib/sqoop/osdt_cert.jar,/var/lib/sqoop/osdt_core.jar,/var/lib/sqoop/sqljdbc4.jar" --m 1 --connect "jdbc:oracle:thin:@MY_TNS_NAME" --query "SELECT * FROM MYTABLE WHERE \$CONDITIONS" --target-dir '/tmp/mytabledump'

    我收到此错误:

    Error: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: encountered a problem with the Secret Store. Check the wallet location for the presence of an open wallet (cwallet.sso) and ensure that this wallet contains the correct credentials using the mkstore utility: java.io.IOException: oracle.security.crypto.core.CipherException: Invalid padding string (or incorrect password)...



    如果我在不使用钱包(手动提供用户名和密码)的情况下运行相同的命令,它就可以工作。

    将钱包传递给映射器似乎存在一些问题。
    知道如何解决这个问题吗?

    附加信息:
  • ACL 允许 sqoop 用户访问 /home/myuser
  • /home/myuser/钱包文件夹所有者组是 sqoop 主组(rwx 权限)。
  • 最佳答案

    我们设法解决了这个问题。

    问题与钱包有关。

    据我所知,钱包有两种。第一种类型只能在创建它的机器上使用。第二种类型可以在多台机器上使用。

    我们的问题是我们的钱包属于第一种类型。

    在 map reduce 期间,钱包分布在映射器之间,因此对于这个“不可共享”的钱包,映射器(位于不同的机器上)无法使用它。

    我们必须使用以下命令创建钱包:

    mkstore -wrl "<wallet_folder>" -create

    关于oracle - Sqoop 使用钱包导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46423709/

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