Sqoop import into accumulo, connect to accumulo whith principal and keytab.

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Sqoop import into accumulo, connect to accumulo whith principal and keytab.

Жердев Алексей Анатольевич

Hi guys!

 

The cluster is kerberized.

The question is the following: you need to import a table from the oracle into the accumulator via sqoop.

 

At import here such error

 

17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:java.library.path=:/usr/hdp/2.5.3.0-37/hadoop/lib/native/Linux-amd64-64:/usr/hdp/2.5.3.0-37/hadoop/lib/native 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:java.compiler=<NA> 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:os.arch=amd64 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:os.version=3.10.0-514.6.1.el7.x86_64 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:user.name=root 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:user.home=/root 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client environment:user.dir=/ 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=ambari.hdptest:2181,nn.hdptest:2181,dn1.hdptest:2181 sessionTimeout=30000 [hidden email] 17/04/10 14:23:54 INFO zookeeper.ClientCnxn: Opening socket connection to server dn1.hdptest/10.104.5.102:2181. Will not attempt to authenticate using SASL (unknown error) 17/04/10 14:23:54 INFO zookeeper.ClientCnxn: Socket connection established to dn1.hdptest/10.104.5.102:2181, initiating session 17/04/10 14:23:54 INFO zookeeper.ClientCnxn: Session establishment complete on server dn1.hdptest/10.104.5.102:2181, sessionid = 0x25a22db92a32f2f, negotiated timeout = 30000 17/04/10 14:23:54 ERROR tool.ImportTool: Error during import: org.apache.accumulo.core.client.AccumuloException: java.lang.IllegalArgumentException: Cannot determine SASL mechanism for token class: class org.apache.accumulo.core.client.security.tokens.PasswordToken​

 

Here is the import line:

 

sqoop import --connect jdbc:oracle:thin:@//10.104.9.43:1521/MCPB --query 'select * from a4m.ttlg where branch =1 and code >= 2340339404 AND $CONDITIONS' --username z101 -P --accumulo-instance hdp-accumulo-instance --accumulo-zookeepers ambari.hdptest:2181,nn.hdptest:2181,dn1.hdptest:2181 --accumulo-user accum_presto@HDPTEST --accumulo-password <password> --accumulo-table ttlg --accumulo-column-family col1 --accumulo-row-key pan --accumulo-create-table --fetch-size=10000 --split-by pan --target-dir /user/accumulo/a4m_accum

 

Is it possible to connect to Aссumulo using the principal and keytab, and not the principal and password? (In hive also it was possible to connect to accumulo only using keytab)

 

Can there is a parameter for connecting from sqoop to accumulo using keytab?

In hive, I found such a parameter --accumulo.user.keytab

(hive -hiveconf accumulo.instance.name=hdp-accumulo-instance -hiveconf accumulo.zookeepers=ambari.hdptest:2181,nn.hdptest:2181,dn1.hdptest:2181 -hiveconf accumulo.sasl.enabled=true -hiveconf [hidden email] -hiveconf accumulo.user.keytab=/etc/security/keytabs/accumulo.headless.keytab -hiveconf accumulo.trace.token.type=org.apache.accumulo.core.client.security.tokens.KerberosToken)

 

Just the principal and password in hive does not work either, the same error.

 

 

 

С уважением,
Жердев Алексей Анатольевич


Главный специалист

Группа вычислительных сервисов и хранения данных
Отдел администрирования СХД и UNIX-систем

Департамент системного администрирования и телекоммуникаций
Блок ИТ


skype: mo230383zaa
tel: +79257947464
tel: (495) 787-68-86 in. 14389, 11040

Настоящее сообщение может содержать конфиденциальную информацию, и другую информацию, защищаемую от раскрытия, принадлежащую ПАО «БИНБАНК». Ее разглашение или иное использование без согласования с ПАО «БИНБАНК» является нарушением законодательства Российской Федерации. Если Вы получили данное электронное письмо по ошибке, просим удалить его и любые приложения к нему и проинформировать отправителя. Вы не должны копировать, сохранять или распространять каким-либо образом и с помощью каких-либо средств, как само письмо, так и информацию, содержащуюся в нем (в том числе в виде приложений). Информация в этом сообщении не является официальной позицией ПАО «БИНБАНК» и не влечет финансовые или иные обязательства ПАО «БИНБАНК». 
ВАЖНО! Информация, передаваемая по сети Интернет, без использования технических средств защиты, является не защищенной от противоправных действий третьих лиц и может содержать вредоносные программные средства.
ПАО «БИНБАНК» не несет ответственности за данные действия

 

 

Настоящее сообщение может содержать конфиденциальную информацию, и другую информацию защищаемую от раскрытия, принадлежащую АО «БИНБАНК Кредитные карты». Ее разглашение или иное использование без согласования с АО «БИНБАНК Кредитные карты» является нарушением законодательства Российской Федерации. Если Вы получили данное электронное письмо по ошибке, просим удалить его и любые приложения к нему и проинформировать отправителя. Вы не должны копировать, сохранять или распространять каким-либо образом и с помощью каких-либо средств, как само письмо, так и информацию, содержащуюся в нем (в том числе в виде приложений). Информация в этом сообщении не является официальной позицией АО «БИНБАНК Кредитные карты» и не влечет финансовые или иные обязательства АО «БИНБАНК Кредитные карты». ВАЖНО! Информация, передаваемая по сети Интернет, без использования технических средств защиты, является не защищенной от противоправных действий третьих лиц и может содержать вредоносные программные средства. АО «БИНБАНК Кредитные карты» не несет ответственности за данные действия.

Reply | Threaded
Open this post in threaded view
|

Re: Sqoop import into accumulo, connect to accumulo whith principal and keytab.

Josh Elser
Hi there,

It looks like the Accumulo support in Sqoop does not support Kerberos
authentication to Accumulo[1]. It is hardcoded to use a password and not
the KerberosToken. I forget who contributed this to Sqoop originally --
I don't believe it was one of the developers, but I seem to recall the
person was subscribed to this mailing list. Perhaps this message will
motivate someone to try to build this enhancement :)

For Hive, no, the only option is to use a keytab. Because of the various
means in which Hive could actually execute your query (local runner,
MapReduce, Tez, etc), it's difficult to properly handle a user-provided
password. The longer-term solution would be to modify the
AccumuloStorageHandler in Hive to use the delegation-token support that
Accumulo provides. But, right now, your only option is to use a keytab
-- sorry!

- Josh

[1]
https://github.com/apache/sqoop/blob/7c1754270ff21f533088b946c873321f890da791/src/java/org/apache/sqoop/accumulo/AccumuloMutationProcessor.java#L119

Жердев Алексей Анатольевич wrote:

> Hi guys!
>
> The cluster is kerberized.
>
> The question is the following: you need to import a table from the
> oracle into the accumulator via sqoop.
>
> At import here such error
>
> /17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client
> environment:java.library.path=:/usr/hdp/2.5.3.0-37/hadoop/lib/native/Linux-amd64-64:/usr/hdp/2.5.3.0-37/hadoop/lib/native
> 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client
> environment:java.io.tmpdir=/tmp 17/04/10 14:23:54 INFO
> zookeeper.ZooKeeper: Client environment:java.compiler=<NA> 17/04/10
> 14:23:54 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux
> 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client
> environment:os.arch=amd64 17/04/10 14:23:54 INFO zookeeper.ZooKeeper:
> Client environment:os.version=3.10.0-514.6.1.el7.x86_64 17/04/10
> 14:23:54 INFO zookeeper.ZooKeeper: Client environment:user.name=root
> 17/04/10 14:23:54 INFO zookeeper.ZooKeeper: Client
> environment:user.home=/root 17/04/10 14:23:54 INFO zookeeper.ZooKeeper:
> Client environment:user.dir=/ 17/04/10 14:23:54 INFO
> zookeeper.ZooKeeper: Initiating client connection,
> connectString=ambari.hdptest:2181,nn.hdptest:2181,dn1.hdptest:2181
> sessionTimeout=30000
> watcher=org.apache.accumulo.fate.zookeeper.ZooSession$ZooWatcher@60bc308b <mailto:watcher=org.apache.accumulo.fate.zookeeper.ZooSession$ZooWatcher@60bc308b>
> 17/04/10 14:23:54 INFO zookeeper.ClientCnxn: Opening socket connection
> to server dn1.hdptest/10.104.5.102:2181. Will not attempt to
> authenticate using SASL (unknown error) 17/04/10 14:23:54 INFO
> zookeeper.ClientCnxn: Socket connection established to
> dn1.hdptest/10.104.5.102:2181, initiating session 17/04/10 14:23:54 INFO
> zookeeper.ClientCnxn: Session establishment complete on server
> dn1.hdptest/10.104.5.102:2181, sessionid = 0x25a22db92a32f2f, negotiated
> timeout = 30000 17/04/10 14:23:54 ERROR tool.ImportTool: Error during
> import: org.apache.accumulo.core.client.AccumuloException:
> java.lang.IllegalArgumentException: Cannot determine SASL mechanism for
> token class: class
> org.apache.accumulo.core.client.security.tokens.PasswordToken​/
>
> Here is the import line:
>
> /sqoop import --connect jdbc:oracle:thin:@//10.104.9.43:1521/MCPB
> --query 'select * from a4m.ttlg where branch =1 and code >= 2340339404
> AND $CONDITIONS' --username z101 -P --accumulo-instance
> hdp-accumulo-instance --accumulo-zookeepers
> ambari.hdptest:2181,nn.hdptest:2181,dn1.hdptest:2181 --accumulo-user
> accum_presto@HDPTEST --accumulo-password <password> --accumulo-table
> ttlg --accumulo-column-family col1 --accumulo-row-key pan
> --accumulo-create-table --fetch-size=10000 --split-by pan --target-dir
> /user/accumulo/a4m_accum/
>
> //
>
> Is it possible to connect to Aссumulo using the principal and keytab,
> and not the principal and password? (In hive also it was possible to
> connect to accumulo only using keytab)
>
> Can there is a parameter for connecting from sqoop to accumulo using keytab?
>
> In hive, I found such a parameter --accumulo.user.keytab
>
> (/hive -hiveconf accumulo.instance.name=hdp-accumulo-instance -hiveconf
> accumulo.zookeepers=ambari.hdptest:2181,nn.hdptest:2181,dn1.hdptest:2181
> -hiveconf accumulo.sasl.enabled=true -hiveconf
> accumulo.user.name=accumulo-hdptest@HDPTEST
> <mailto:accumulo.user.name=accumulo-hdptest@HDPTEST> -hiveconf
> accumulo.user.keytab=/etc/security/keytabs/accumulo.headless.keytab
> -hiveconf
> accumulo.trace.token.type=org.apache.accumulo.core.client.security.tokens.KerberosToken/)
>
> Just the principal and password in hive does not work either, the same
> error.
>
> *С уважением,
> Жердев Алексей Анатольевич*
>
> Главный специалист
>
> Группа вычислительных сервисов и хранения данных
> Отдел администрирования СХД и UNIX-систем
>
> Департамент системного администрирования и телекоммуникаций
> Блок ИТ
>
> binbank
> skype: mo230383zaa
> tel: +79257947464
> tel: (495) 787-68-86 in. 14389, 11040
>
> Настоящее сообщение может содержать конфиденциальную информацию, и
> другую информацию, защищаемую от раскрытия, принадлежащую ПАО «БИНБАНК».
> Ее разглашение или иное использование без согласования с ПАО «БИНБАНК»
> является нарушением законодательства Российской Федерации. Если Вы
> получили данное электронное письмо по ошибке, просим удалить его и любые
> приложения к нему и проинформировать отправителя. Вы не должны
> копировать, сохранять или распространять каким-либо образом и с помощью
> каких-либо средств, как само письмо, так и информацию, содержащуюся в
> нем (в том числе в виде приложений). Информация в этом сообщении не
> является официальной позицией ПАО «БИНБАНК» и не влечет финансовые или
> иные обязательства ПАО «БИНБАНК».
> ВАЖНО! Информация, передаваемая по сети Интернет, без использования
> технических средств защиты, является не защищенной от противоправных
> действий третьих лиц и может содержать вредоносные программные средства.
> ПАО «БИНБАНК»не несет ответственности за данные действия
>
>
> Настоящее сообщение может содержать конфиденциальную информацию, и
> другую информацию защищаемую от раскрытия, принадлежащую АО «БИНБАНК
> Кредитные карты». Ее разглашение или иное использование без согласования
> с АО «БИНБАНК Кредитные карты» является нарушением законодательства
> Российской Федерации. Если Вы получили данное электронное письмо по
> ошибке, просим удалить его и любые приложения к нему и проинформировать
> отправителя. Вы не должны копировать, сохранять или распространять
> каким-либо образом и с помощью каких-либо средств, как само письмо, так
> и информацию, содержащуюся в нем (в том числе в виде приложений).
> Информация в этом сообщении не является официальной позицией АО «БИНБАНК
> Кредитные карты» и не влечет финансовые или иные обязательства АО
> «БИНБАНК Кредитные карты». ВАЖНО! Информация, передаваемая по сети
> Интернет, без использования технических средств защиты, является не
> защищенной от противоправных действий третьих лиц и может содержать
> вредоносные программные средства. АО «БИНБАНК Кредитные карты» не несет
> ответственности за данные действия.
>