hive - используйте внешний или локальный s3 вместо aws s3

У меня локально работает s3 вместо aws s3. Есть ли способ перезаписать 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>    

Now I want to create table and if I put:

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?


person s_z_p    schedule 09.07.2018    source источник


Ответы (2)


  1. Переключитесь на S3A Connector (и Hadoop 2.7+ JAR)
  2. установите "fs.s3a.endpoint" в имя хоста вашего сервера
  3. и "fs.s3a.path.style.access" = true (вместо того, чтобы ожидать, что каждая корзина будет иметь DNS)

Будьте готовы потратить время на работу над параметрами аутентификации, поскольку подписание всегда является источником проблем в сторонних магазинах.

person stevel    schedule 09.07.2018

С этой конфигурацией я могу достичь своей конечной точки 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>

person s_z_p    schedule 10.07.2018