Как настроить Hive EMR для использования S3 в качестве файловой системы и хранилища по умолчанию - PullRequest
0 голосов
/ 14 декабря 2018

Я пытаюсь настроить EMR Hive для использования S3 в качестве хранилища базы данных и расположения по умолчанию для внутренних / управляемых баз данных / таблиц.

Я уже настроил S3 в качестве файловой системы по умолчанию для hadoop, установив fs.defaultFS в s3://.. в core-site.xml хоста namenode -

<property>
  <name>fs.defaultFS</name>
  <value>s3://***********</value>
</property>

Некоторые свойстваприсутствовали по умолчанию, чего я не трогал

   <property>
      <name>fs.s3.impl</name>
      <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value>
    </property>

    <property>
      <name>fs.s3n.impl</name>
      <value>com.amazon.ws.emr.hadoop.fs.EmrFileSystem</value>
    </property>

    <property>
      <name>fs.s3.buffer.dir</name>
      <value>/mnt/s3,/mnt1/s3</value>
      <final>true</final>
    </property>

   <property>
     <name>fs.s3.buckets.create.region</name>
     <value>sa-east-1</value>
   </property>
   <property>
     <name>fs.s3bfs.impl</name>
     <value>org.apache.hadoop.fs.s3.S3FileSystem</value>
   </property>

   <property>
     <name>fs.AbstractFileSystem.s3.impl</name>
     <value>org.apache.hadoop.fs.s3.EMRFSDelegate</value>
   </property>

Это работает, как и ожидалось, с помощью команд hadoop fs, и я могу получить доступ к корзине S3.

Чтобы настроить куст на использование S3, я внес эти изменения в файл hive-site.xml хоста namenode, где также работает hive-server2

<property>
  <name>fs.defaultFS</name>
  <value>s3://***********</value>
</property>

<property>
  <name>hive.metastore.warehouse.dir</name> .
  <value>s3://***********/user/hive/warehouse</value>
</property>

После перезапуска компонентов hadoop-hdfs-namenode, hive-server2, hadoop-yarn-resourcemanager, я пытаюсь использовать Hive CLI для создания базы данных.

create database test

Но когда я описываю эту базу данных, она дает мне ее местоположение как hdfs://..

Я исправил это, используя s3:a// в качестве схемы URI вhive-site.xml .. расположение базы данных тогда s3a:// .. но потом, когда я пытаюсь вставить в него данные ... но происходит сбой с ошибкой -

Error during job, obtaining debugging information...
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched: 
Stage-Stage-1:  HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec

путь к классу hadoop имеет путьгде присутствуют jar hadoop-aws -

/ etc / hadoop / conf: / usr / lib / hadoop / lib / : / usr / lib / hadoop /.//: / usr/lib/hadoop-hdfs/./:/usr/lib/hadoop-hdfs/lib/:/usr/lib/hadoop-hdfs/.//:/usr/lib/hadoop-yarn/Библиотека / : / USR / Библиотека / Hadoop-пряжа /.//* * тысяча сорок-один: / USR / Библиотека / Hadoop-MapReduce / Библиотека / : / USR / Библиотека / Hadoop MapReduce-/.// :: / и т.д. / тез / конф: / USR / Lib / тез / : / USR / Lib / тез / Библиотека / : / USR / Lib / Hadoop-LZO / Библиотека / :/ USR / доли / AWS / AWS-Java-SDK / : / USR / доли / AWS / ЭМИ / emrfs / конф: / USR / доли / AWS / ЭМИ / emrfs / Библиотека / : / USR /доля / AWS / ОЙ / emrfs / auxlib / : / USR / доли / AWS / ОЙ / DDB / Библиотека / ЭЙ-DDB-hadoop.jar: / USR / доли / AWS / АЯ / лакомство / Библиотека / emr-хаDoop-goodies.jar: /usr/share/aws/emr/kinesis/lib/emr-kinesis-hadoop.jar: / USR / доли / AWS / АЯ / cloudwatch раковина / Библиотека / : / USR / доли/ aws / emr / security / conf: / usr / share / aws / emr / security / lib /

Пожалуйста, укажите в комментарии, если для устранения проблемы требуется какая-либо другая информация.Заранее спасибо!

...