使用Kerberos验证的NiFi连接到Kafka和HDFS

在通过NiFi访问Kerberize的Kafka时遇到了困难,我的同事开玩笑说:”将Kafka进行Kerberize使其变得非常安全,安全性太过强大,连我自己都进不去w”。听到这个笑话我稍微安心了一点,但实际上还是遇到了相当多的困难。因为这是我很久以来处理的大量信息,所以我把它留下来了。

如果你需要英文,可以在这里找到。 nǐ , .)

尽管有很多关于如何将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模板的示例。如果能对您有所帮助那就太好了。