2014-09-09 2 views
1

Я пытаюсь выполнить сценарий улья из oozie hive action в среде с поддержкой kerberos.Oozie hive action with kerberos on HDP-1.3.3

Вот мой workflow.xml

<action name="hive-to-hdfs"> 
    <hive xmlns="uri:oozie:hive-action:0.2"> 
     <job-tracker>${jobTracker}</job-tracker> 
     <name-node>${nameNode}</name-node> 
     <job-xml>hive-site.xml</job-xml> 
     <configuration> 
      <property> 
       <name>mapred.job.queue.name</name> 
       <value>${queueName}</value> 
      </property> 
     </configuration> 
     <script>script.q</script> 
     <param>HIVE_EXPORT_TIME=${hiveExportTime}</param> 
    </hive> 
    <ok to="pass"/> 
    <error to="fail"/> 

Я столкнулся проблемой при попытке подключиться к улей metastore.

6870 [главная] INFO hive.metastore - Попытка подключения к metastore с URI бережливости: //10.0.0.242: 9083 Сердце бить Сердце бить 67016 [главная] WARN hive.metastore - set_ugi() не удалось, вероятно, причина: новый клиент разговаривает со старым сервером. Продолжая без него. org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Прочитать тайм-аут на org.apache.thrift.transport.TIOStreamTransport.read (TIOStreamTransport.java:129) на org.apache.thrift.transport. TTransport.readAll (TTransport.java:84) на org.apache.thrift.protocol.TBinaryProtocol.readAll (TBinaryProtocol.java:378) на org.apache.thrift.protocol.TBinaryProtocol.readI32 (TBinaryProtocol.java:297)

67018 [main] INFO hive.metastore - Ожидание 1 секунда перед следующей попыткой подключения. 68018 [main] INFO hive.metastore - подключен к метасторе. Heart beat Heart beat 128338 [main] WARN org.apache.hadoop.hive.metastore.RetryingMetaStoreClient - MetaStoreClient потерянное соединение. Попытка повторного подключения. org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Прочитать тайм-аут на org.apache.thrift.transport.TIOStreamTransport.read (TIOStreamTransport.java:129) на org.apache.thrift.transport. TTransport.readAll (TTransport.java:84) на org.apache.thrift.protocol.TBinaryProtocol.readAll (TBinaryProtocol.java:378) на org.apache.thrift.protocol.TBinaryProtocol.readI32 (TBinaryProtocol.java:297)

129339 [главная] INFO hive.metastore - Попытка подключения к metastore с URI бережливости: //10.0.0.242: 9083 Сердце бить Сердце бить 189390 [главная] WARN hive.metastore - set_ugi() не увенчались успехом , Вероятная причина: новый кли nt разговаривает со старым сервером. Продолжая без него. org.apache.thrift.transport.TTransportException: java.net.SocketTimeoutException: Прочитать тайм-аут на org.apache.thrift.transport.TIOStreamTransport.read (TIOStreamTransport.java:129) на org.apache.thrift.transport. TTransport.readAll (TTransport.java:84) на org.apache.thrift.protocol.TBinaryProtocol.readAll (TBinaryProtocol.java:378) на org.apache.thrift.protocol.TBinaryProtocol.readI32 (TBinaryProtocol.java:297)

189391 [main] INFO hive.metastore - Ожидание 1 секунда перед следующей попыткой подключения. 190391 [main] INFO hive.metastore - подключен к метасторе. Сердце бить Сердце бить 250449 [главная] ОШИБКА org.apache.hadoop.hive.ql.parse.SemanticAnalyzer - org.apache.hadoop.hive.ql.metadata.HiveException: Не удалось получить таблицу SESSION_MASTER в org.apache .hadoop.hive.ql.metadata.Hive.getTable (Hive.java:953) at org.apache.hadoop.hive.ql.metadata.Hive.getTable (Hive.java:887) at org.apache.hadoop .hive.ql.parse.SemanticAnalyzer.getMetaData (SemanticAnalyzer.java:1083) в org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.getMetaData (SemanticAnalyzer.java:1059)

Когда я отключить Kerberos рабочий безопасности работает отлично

ответ

2

Чтобы активировать действие Oozie Hive на защищенном кластере, вам необходимо включить раздел <credentials> с учетными данными типа hcat в рабочий процесс.

Ваш рабочий будет выглядеть примерно так:

<workflow-app name='workflow' xmlns='uri:oozie:workflow:0.1'> 
    <credentials> 
     <credential name='hcat' type='hcat'> 
      <property> 
       <name>hcat.metastore.uri</name> 
       <value>HCAT_URI</value> 
      </property> 
      <property> 
       <name>hcat.metastore.principal</name> 
       <value>HCAT_PRINCIPAL</value> 
      </property> 
     </credential> 
    </credentials> 

    <action name="hive-to-hdfs" cred="hcat"> 
     <hive xmlns="uri:oozie:hive-action:0.2"> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
      <job-xml>hive-site.xml</job-xml> 
      <configuration> 
       <property> 
        <name>mapred.job.queue.name</name> 
        <value>${queueName}</value> 
       </property> 
      </configuration> 
      <script>script.q</script> 
      <param>HIVE_EXPORT_TIME=${hiveExportTime}</param> 
     </hive> 
     <ok to="pass"/> 
     <error to="fail"/> 
    </action> 
</workflow> 

Существует также Oozie documentation об этой функции.

Смежные вопросы