LoginSignup
0

More than 5 years have passed since last update.

NiFiでKerberizeされたKafka、HDFSに接続する

Posted at

KerberizeされたKafkaにNiFiからアクセスするのに苦労している時、同僚が「KafkaをKerberizeすると非常にセキュア、セキュリティ頑丈過ぎて自分でも入れないw」なんてジョークを飛ばしてました。
それぐらい難しいんだなー、と少し安心しつつ、やっぱり結構苦労しました。久々にまとまった量の情報になったので残しておきます。

If you're looking for English, it's available here.

NiFiからKafkaやHDFSに接続する記事は色々あるのですが、Kerberosが絡むと、Zookeeper、Kafka、HDFS、Ambari、Ranger、NiFiと設定が広範囲に渡り、ちらばったドキュメントを参照しないといけないので、まず全体像を把握するのがとても難しかったです。

以下の手順はHDP SandboxをKerberizeしてNiFiから接続するラフな手順をまとめたもので、不必要なものも、不足もあるかもしれませんが、全体的にはこんな感じの手順になります:

  • HDPのSandboxに最新のHDFをダウンロードしてインストール
  • Kafkaデフォルトでは起動していないので、Ambariから起動、メンテナンスモード解除
  • 影響のあるサービスをリスタートする
  • MIT KDCをインストールして設定する 参考
  • AmbariからKerberosを有効にする
  • AmbariのKerberosウィザードにしたがって進める
  • Check Pigのテストが失敗するが、Completeボタンで前に進む
  • いくつかのサービスが起動してない状態になったので、Ambariから起動
  • Kerberos関連のKafka設定を行う 参考
  • Kafka listenersの設定をPLAINTEXT://localhost:6667からPLAINTEXTSASL://localhost:6667にAmbariから変更
  • AmbariのRanger設定からKafka ranger plugin, Kafkaの設定からEnable Ranger for KAFKAをそれぞれ有効にする 参考
  • RangerでKafkaのACLを設定する 参考
  • 後から別ユーザで接続しようと思っても、すでに他のKerberosユーザでConsumer Group接続している場合は、同一のGroup idで他のKerberosユーザからは接続できないので注意
  • KerberizedされたKafkaにNiFiが接続できるようにNiFiを設定 参考 サンプルコード貼り付けるときにダブルクォーテーショ ンに注意
  • /etc/krb5.confをnifi.propertiesのnifi.kerberos.krb5.fileに設定
  • HDFSのアクセス制御はRangerのみで管理することが推奨されている 参考
  • PutKafka, GetKafka, PutHDFSなどを使ってNiFiのフローを作成する

GistにはサンプルのNiFi templateとかも置いてあります。何かのお役に立てばこれ幸い。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0