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