hive-使用外部或本地s3而不是awss3

kb5ga3dv  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(546)

我有自己的s3在本地运行,而不是awss3。有没有办法覆盖s3.amazonaws.com?
我创造了 hive-site.xml 把它放进去 ${HIVE_HOME}/conf/ .
这是我在.xml中得到的:

<configuration>
<property>
    <name>fs.s3n.impl</name>
    <value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
</property>
<property>
    <name>fs.s3n.endpoint</name>
    <value>local_s3_ip:port</value>
</property>
<property>
    <name>fs.s3n.awsAccessKeyId</name>
    <value>VALUE</value>
</property>
<property>
    <name>fs.s3n.awsSecretAccessKey</name>
    <value>VALUE</value>
</property>

现在我想创建一个表,如果我把:

LOCATION('s3n://hive/sample_data.csv')

我有个错误:
org.apache.hadoop.hive.ql.exec.ddltask。java.net.unknownhostexception:hive.s3.amazonaws.com:名称解析暂时失败
它既不适用于s3也不适用于s3n。
是否可以覆盖默认的s3.amazonaws.com并使用我自己的s3?

l0oc07j2

l0oc07j21#

切换到s3a连接器(和Hadoop2.7+jars)
将“fs.s3a.endpoint”设置为服务器的主机名
和“fs.s3a.path.style.access”=true(而不是期望每个bucket都有dns)
由于签名在第三方商店中总是一个麻烦的问题,所以您应该花时间研究身份验证选项。

vwoqyblh

vwoqyblh2#

通过这种配置,我可以到达自己的s3端点。

<configuration>
    <property>
        <name>fs.s3a.impl</name>
        <value>org.apache.hadoop.fs.s3a.S3AFileSystem</value>
    </property>
    <property>
        <name>fs.s3a.endpoint</name>
        <value> <ip>:<port> </value>
    </property>
    <property>
        <name>fs.s3a.path.style.access</name>
        <value>true</value>
    </property>
   <property>
      <name>fs.s3a.access.key</name>
      <value> <ak> </value>
   </property>
   <property>
      <name>fs.s3a.secret.key</name>
      <value> <sk> </value>
   </property>
    <property>
        <name>fs.s3a.awsAccessKeyId</name>
        <value> <ak> </value>
    </property>
    <property>
        <name>fs.s3a.awsSecretAccessKey</name>
        <value> <sk> </value>
    </property>
    <property>
        <name>fs.s3a.connection.ssl.enabled</name>
        <value>false</value>
    </property>

相关问题