1. 程式人生 > >Flume.apache.org 官方文件學習筆記 part five

Flume.apache.org 官方文件學習筆記 part five

     kafka 源:

        Kafka 源是Apache Kafka 消耗者,讀取來自kafka主題的資訊。如果你有多個Kafka源在執行,你可以給他們配置一樣的使用者群組,以便每個源都讀取一組唯一的主題分割槽。

        

       要注意的是:Kafka源重寫了兩個kafka消費者屬性,auto-commit可以被此源設定為“false",並且每一批都是這樣堅定。 Kafka資源保證至少曾經的資訊可以被檢索。複本可以被展現出來當此源啟動的時候。  Kafka源也為key.deserializer(org.apache.kafka.common.serialization.StingSerializer)和value.apache.org.common.serilization.ByteASRR提供預設值.修改這些引數是不推薦的。

安全的Kafka源:             安全認證還有資料加密支援flume和kafka之間的交流通道。 安全認證SASL/GSSAPI(Kerberos V5) 或者 SSL(甚至實際協議是TLS實現,但是引數名字是SSL) 可以用於Fafka版本0.9.0

            截至目前,資料加密僅有SSL/TLS提供

            將kafka.consumer.security.protocol設定為以下值意味著:             SASL_PLAINTEXT -Kerberos 或者沒有資料加密的明文驗證。             SASL_SSL -Kerberos 或者有資料加密的明文驗證。             SSL -基於加密的TLS,帶有可選驗證。 

        警告:當SSL協議被啟用時,會有一個性能退化,這個的大小會由CPU型別和JVM實現來決定。         參考:Kafka 安全概述還有追蹤此問題的jira:KAFKA-2561

        TLS和Kafka源:             請閱讀Configuring Kafka Clients SSL中描述的步驟,去了解如何附加配置進行調優,接下來列舉出來的一些:安全,提供者,密文組,可用協議,檔案或者金鑰庫型別。

            伺服器驗證和資料加密的示例配置:             a1.sources.source1.type = org.apache.flume.source.kafka.KafkaSource         a1.sources.source1.kafka.bootstrap.servers = kafka-1:9093,kafka-2:9093,kafka-3:9093         a1.sources.source1.kafka.topics = mytopic         a1.sources.source1.kafka.consumer.group.id = flume-consumer         a1.sources.source1.kafka.consumer.security.protocol = SSL         a1.sources.source1.kafka.consumer.ssl.truststore.location=/path/to/truststore.jks         a1.sources.source1.kafka.consumer.ssl.truststore.password=<password to access the truststore>

        注意:在預設的情況下,屬性ssl.endpoint.identification.alogorithm 沒有被定義,所以主機驗證沒有實現。為了實現主機驗證,設定下面的屬性:

        a1.sources.source1.kafka.consumer.ssl.endpoint.identification.algorithm=HTTPS

        一旦成功了,客戶端就會驗證這個伺服器域名是否完全合格,靠下面兩個欄位的其中一個:

        a1.sources.source1.kafka.consumer.ssl.keystore.location=/path/to/client.keystore.jks         a1.sources.source1.kafka.consumer.ssl.keystore.password=<password to access the keystore>

        如果金鑰庫和金鑰使用了不同的密碼,那麼 ssl.key.password 屬性應該提供 所需的附加金鑰 給兩個消費者金鑰庫。

        a1.sources.source1.kafka.consumer.ssl.key.password = <password to access the key>

        Kerberos 和 Kafka源:         為了用一個被Kerberos保護的kafka叢集來使用Kafka源,為消費者設定 上面提到過的‘consumer.security.protocol’ 屬性。  與Kafka代理一起使用的Kerberos金鑰表和主體在JAAS檔案的”KafkaClient“部分中指定。 ”客戶端“部分描述了Zookeeper連線。有關JAAS檔案內容的資訊,請參閱Kafka doc. 可以通過flume-env.sh中的Java——OPTS指定此JAAS的位置以及可選的系統範圍的kerberos配置: