2.1カフカのダウンロードとインストール
kafka_2.12-2.3.0.tgz
タール-zxvf kafka_2.12-2.3.0.tgz
2.2カフカのクラスタ構成
:中のconfig / server.propertiesパラメータを変更し
、[Hadoopの@ hadoop01 kafka_2.12-2.3.0] CD $の設定
[Hadoopのhadoop01設定@]はgeditのserver.propertiesの$ パラメータ1:= hadoop01 host.nameを追加
##### ########################サーバーの基本######################## #####
..#これのIDのそれぞれのための一意の整数をブローカーにブローカを設定する必要があり
broker.id = 0
host.name = hadoop01 パラメータ2:変更log.dirs
######### ####################ログの基本############################ #
ファイルの下に一覧ストアログの#カンマ区切りのディレクトリ
log.dirs = /ホーム/ Hadoopの/ kafka_2.12-2.3.0 /ログのパラメータ3:ZooKeeperのノードアドレスとポートを追加します。
######### ####################飼育係#############################
#飼育係の接続文字列(詳細については、飼育係のドキュメントを参照してください)。
#これは、カンマで区切られたホストは、次のとおりポート対は、各々がZKのに対応
#サーバ。例えば"127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"。
#また、指定したURLへのオプションのchroot文字列を追加することができ
、すべてのカフカznodes用#ルートディレクトリを。
zookeeper.connect = hadoop01:2181、hadoop02:2181、hadoop03:2181
各ノードにコピー2.3
〜/:SCP -R&LT〜/ kafka_2.12-2.3.0 hadoop02
〜/:SCP -R&LT〜/ kafka_2.12-2.3.0 hadoop03
内の各ノードserver.properties 2.4 broker.idパラメータ、残りのパラメータ変わらず
hadoop02节点:
#############################サーバーの基本################ #############
#ブローカーのID。これは、ブローカごとに一意の整数に設定する必要があります。broker.id = 1
host.name = hadoop02 hadoop03节点:
#############################サーバーの基本###### #######################
#ブローカーのID。これは、ブローカごとに一意の整数に設定する必要があります。broker.id = 2
host.name = hadoop03
2.5カフカを開始(飼育係を起動する必要があります)
2.5.1飼育係カフカを開始する前に開始する必要があります
[Hadoopの@のhadoop01〜] $のCDビン
[のHadoopの@ hadoop01ビン] $のSHのzookeeperstart.sh -这里是一键启动飼育係脚本、具体见https://www.cnblogs.com/CQ-LQJ/p/11605603。 HTMLの
INFO:01に飼育係の開始
は/ usr / binに/ javaの
デフォルトで有効になってZooKeeperのJMX
設定を使用する:/home/hadoop/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg
飼育係を起動するには... STARTED
INFO:02で飼育係の開始
は/ usr / binに/ javaの
デフォルトで有効になってZooKeeperのJMX
設定を使用する:/home/hadoop/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg
飼育係を開始しています... STARTED
INFOを:03に開始する飼育係
の/ usr / binに/ javaの
デフォルトで有効になってZooKeeperのJMX
設定を使用する:/home/hadoop/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg
デフォルトで有効になってZooKeeperのJMX
飼育係を開始... STARTED
INFOを:01に開始する飼育係
の/ usr / binに/ javaの
デフォルトで有効になってZooKeeperのJMX
設定を使用:/home/hadoop/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg
クライアントポートが見つかりました:2181.クライアントアドレス:localhostと。
モード:フォロワー
INFO:02に開始する飼育係
の/ usr / binに/ javaの
デフォルトで有効になってZooKeeperのJMX
使用設定:/home/hadoop/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg
クライアントポートが見つかりました2181.クライアントアドレス:localhostを。
モード:リーダー
INFO:03に開始する飼育係
の/ usr / binに/ javaの
設定を使用する:/home/hadoop/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg
クライアントポートが見つかりました:2181.クライアントのアドレスを: localhostを。
モード:フォロワー
2.5.2後飼育係は、スタートコマンドカフカを開始します
[Hadoopの@ hadoop01ビン] $ CD〜/ kafka_2.12-2.3.0
[Hadoopの@ hadoop01 kafka_2.12-2.3.0] $ビン/ kafka-server-start.shのconfig / server.properties -このコマンドを正しく、しかし、あなたは、プロセス内のインタフェース・カードをウィンドウを閉じることができません
2.5.2.1.1第一次启动报错(解决办法:升级151或者到jdk8 131均可):
[2019年9月30日00:28:56482] INFO登録カフカ:種類= kafka.Log4jControllerのMBean(kafka.utils .Log4jControllerRegistration $)
[2019年9月30日00:28:56875] ERRORの終了カフカによる致命的な例外に(kafka.Kafka $)
にjava.lang.VerifyError:初期化されていないオブジェクトは後方分岐209上に存在する
例外の詳細:
場所:
スカラ/コレクション/immutable/HashMap$HashTrieMap.split()Lscala/collection/immutable/Seq; 249 @:後藤
理由:
エラーは、バイトコードに存在する
バイトコード:
0000000:2ab6 0064 04a0 001E B200のc1b2 00c6 04bd
0000010:0002 5903 2a53 C000 c8b6 00CC B600のd0c0
0000020:0042 3c1b 04a4 0156 38B8 00d2のb02aのB600
0000030:1b05 6c3d 2a1b 056cの2ab6 0038 B700のD43e
0000040:2ab6 0038 021d 787e 3604 2ab6 0038 0210
0000050:201D 647c 7e36 59b2 0019 05bb 00c6 2ab6
0000060:003A C000 C8b6 00d8 B700 Db1c B600 DF3A
0000070:0619 06c6 001A 1906 B600 E3c0 008B 3a07
0000080:1906 B600 E6c0 008B 3a08 A700 0dbb 00E8
0000090:5919 06b7の00eb Bf19 073a 0919 083a 0abb
00000a0:0002 5915 0419 0019 59b2 00c6 1909 09bb
C000 C8b6 00d8 B700 DB03 B800 F13Aの0e3a:00000b0
00000c0:0d03 190D B900 F501 0019 0e3a 1136 1036
00000d0:0f15 0f15 109F 0027 1510 0 460 190D 150F
00000e0:150F B900のF802 00C0 3a17 1911 0005 1917
00000f0:B800 Fc3a 1136 1036 0fa7 FFD8 1911 B801
0000100:00b7 0069 3a0bのbb00 0259 1505 190A bb00
0000110:1959 B200のc619 0ac0 00C8 B600のd8b7 00デシベル
0000120:03b8の00f1 3a13 3a12 0319 12b9 00f5 0100
0000130:1913 3a16 3615 3614 1514 1515 9f00 2715
0000140:1404 6015 1519 1215 14b9の00f8 0200 C000
0000150:053a 1819 1619 18b8 0103 3a16 3615 3614
0000160:d819 16b8 0100 B700 a7ff 693A 0cbb 0105
0000170:5919 0bbb 0105 5919 0cb2 010A B701 0db7
0000180:B0 010F 010D b02a B600 3a03 32b6
スタックマップテーブル:
same_frame(35 @)
full_frame(@ 141、{オブジェクト[#2]、整数、整数、整数、整数、整数、オブジェクト[#118]}、{})
append_frame(151 @、[#139]オブジェクト、[#139]物体)
full_frame(209、{オブジェクト[#2]、整数、整数、整数、整数、整数、オブジェクト[#118]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#139 @ ]、トップ、トップ、オブジェクト[#25]、オブジェクト[#62]、整数、整数、オブジェクト[#116]}、{初期化されていない[#159]、初期化されていない[#159]、整数、オブジェクト[#139]} )
full_frame(252 @、{オブジェクト[#2]、整数、整数、整数、整数、整数、オブジェクト[#118]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[# 139]、トップ、トップ、オブジェクト[#25]、オブジェクト[#62]、整数、整数、オブジェクト[#116]}、{初期化されていない[#159]、初期化されていない[#159]、整数、オブジェクト[#139] })
full_frame(312、{オブジェクト[#2]、整数、整数、整数、整数、整数、オブジェクト[#118]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#139 @ ]、オブジェクト[#2]、トップ、オブジェクト[#25]、オブジェクト[#62]、整数、整数、オブジェクト[#116]、オブジェクト[#25]、オブジェクト[#62]、整数、整数、オブジェクト[ #116]}、{初期化されていない[#262]、初期化されていない[#262]、整数、オブジェクト[#139]})
full_frame(355 @、{オブジェクト[#2]、整数、整数、整数、整数、整数、オブジェクト[#118]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#139]、オブジェクト[#2]、トップ、オブジェクト[#25]、オブジェクト[#62]、整数、整数、オブジェクト[#116]、オブジェクト[#25]、オブジェクト[#62]、整数、整数、オブジェクト[#116]}、{初期化されていない[#262]、初期化されていない[#262]、整数、オブジェクト[# 139]})
full_frame(387 @、{オブジェクト[#2]、整数}、{})
scala.collection.immutable.HashMap $ .scala $収集$で不変のHashMap $ $$ makeHashTrieMap(HashMap.scala:185)
:scala.collection.immutable.HashMap $ HashMap1.updated0(220 HashMap.scala)で
:scala.collection.immutable.HashMap.updated(62 HashMap.scala)で
scala.collection.immutable.Map $ Map4.updated(地図で227):.scala
。228):scala.collection.immutable.Map $ MAP4 $プラス(Map.scalaで
200):scala.collection.immutable.Map $ MAP4 $でプラス(Map.scala。
scala.collectionで。 mutable.MapBuilder $プラス$当量(MapBuilder.scala:32)。
scala.collection.mutable.MapBuilderで$プラス$ EQ(MapBuilder.scala:28)。
。scala.collection.TraversableOnceで$ anonfun $ toMap $ -1(TraversableOnce。スカラ:320)
scala.collection.TraversableOnce $$ラムダ$ 10 / 838411509.apply(不明なソース)で
scala.collection.immutable.List.foreach(List.scala時:392)
:scala.collection.TraversableOnce.toMap(319 TraversableOnce.scala)で
:scala.collection.TraversableOnce.toMap $(317 TraversableOnce.scala)で
:scala.collection.AbstractTraversable.toMap(108 Traversable.scala)で
kafka.apiで.ApiVersion $ <初期化>(ApiVersion.scala:98)。
kafka.api.ApiVersion $で<clinit>(ApiVersion.scala)。
kafka.server.Defaults $での<init>(KafkaConfig.scala:146)。
カフカで.server.Defaults $ <clinit>(KafkaConfig.scala)。
kafka.server.KafkaConfig $での<init>(KafkaConfig.scala:854)。
kafka.server.KafkaConfig $で<clinit>(KafkaConfig.scala)。
カフカで.metrics.KafkaMetricsConfig <初期化>(KafkaMetricsConfig.scala:32)。
:kafka.metrics.KafkaMetricsReporter $ .startReporters AT(62 KafkaMetricsReporter.scala)
kafka.server.KafkaServerStartable $ .fromProps(KafkaServerStartable.scala:27)AT
:kafka.Kafka $の.main(68 Kafka.scala)AT
kafka.Kafka AT .main(Kafka.scala)
今JDKのバージョン:
[Hadoopの@ hadoop01 kafka_2.12-2.3.0] -version JAVA $
Javaバージョン"1.8.0_11"
Javaの(TM)SE Runtime Environmentには(1.8.0_11-B12の構築)
のJavaホットスポット(TM)64ビット・サーバーのVM(25.11ビルド-B03、混合モード)
2.5.2.1.2カフカが住んでいた開始または立ち往生していない
<:仮想マシンのメモリ不足の可能原因
200メートル-起動スクリプト初期メモリ1Gを変更:ソリューション>
1.スクリプトビンのvim / kafka-server-start.sh開い
た2、: - "Xmx1G -Xms1G"エクスポートKAFKA_HEAP_OPTS =
: " - Xmx200m -Xms200mオプション輸出KAFKA_HEAP_OPTS = 3を、として改正 "
図4は、カフカが住んでいた再起動します。bin / kafka-server-start.sh設定を/ server.properties>は
カフカはスタートを生きるために使用2.5.2.2:
プラスデーモンと&デーモンが開始しています。(コマンドウィンドウを閉じることはできませんコンソールでのダイレクトプリント出力、:ビン/ kafka-server-start.shのconfig / server.properties)
[Hadoopの@のhadoop01ビン] $のCD〜/ kafka_2.12-2.3.0
[Hadoopのhadoop01 kafka_2.12-2.3.0 @]#ビン/ kafka-server-start.sh -daemonのconfig / server.properties&
jpsコマンドカフカと正常に起動するかどうか2.5.2.3チェック
[Hadoopの@ hadoop01 kafka_2.12-2.3.0]#JPS
8736ノードマネージャ
8593のResourceManager
8083データノード
7942名前ノード
8330 SecondaryNameNode
12700 JPS
11981カフカ
注:カフカの正常シャットダウンを開始し、飼育係、飼育係その後、カフカ最初の起動を開始し、停止してから、カフカ飼育係停止し
、他のノードで同じ方法を使用して2.5.2.4をカフカの開始
の説明事項を:Hadoopクラスタの用途に限り、いずれかのコンポーネントの開始が来ると飼育係、または別の飼育係は、サポートサービスの飼育係を必要とする他のコンポーネントをすることができ、飼育係は別々起動する必要はありませ来る
カフカが住んでいた2.6テスト
2.6.1作成のトピック(ニューステーマ:ファイル・システム・ディレクトリと同等のものを、メッセージの内容を保存します)
$ビン/ kafka-topics.sh --zookeeper hadoop01 [@ hadoop01 kafka_2.12-2.3.0のHadoop]:2181、hadoop02:2181、hadoop03:2181 --create --topic TESTR --replicationファクタ3 --partitionsを3
作成したトピックTESTR。
2.6.2トピックとトピックの詳細
$ビン/ kafka-topics.sh --zookeeper hadoop01 [hadoop01 kafka_2.12-2.3.0 @のHadoop]:2181、hadoop02:2181、hadoop03:2181 --list
TESTR
アナログメッセージプロデューサ、そのカフカトピックにメッセージを送信するマニュアルモードのコマンドラインを送信2.6.3オープンカフカプロデューサのプロデューサ(及びhadoop01 hadoop02およびhadoop03ができます)。
[Hadoopの@ hadoop02 kafka_2.12-2.3.0] $ビン/ kafka-console-producer.sh --brokerリストhadoop01:9092、hadoop02:9092、hadoop03:9092 --topic TESTR
> THI ^ H ^ Hの\ ^ H ^ H ^ Hこのメッセージで、端末から
>こんにちは
>私の^ H ^ H hahha
>
>
> 11111
>
> 11111111111111111111
>
注:プロデューサーとして、メッセージを送信し、端末上の状態で開始されている、それは、ユーザ入力コマンドを待つことで、話題を格納します。今回は、これらのメッセージを受信するためには、消費者に消費者を作成するために、別の端末を開く必要があります
(hadoop1とhadoop2とhadoop3缶に)2.6.4オープンカフカの消費者の消費者
[Hadoopの@ hadoop01 kafka_2.12-2.3.0] $ビン / kafka-console-consumer.sh --zookeeper hadoop01:2181、hadoop02:2181、hadoop03:2181 --topic --from-始まり(カフカ0.9 TESTR以前のバージョンこのコマンドを使用して)
[Hadoopの@ hadoop01 kafka_2.12-2.3.0] $ビン/ kafka-console-consumer.sh --bootstrap hadoop01-サーバー:9092、hadoop02:9092、hadoop03:9092 --topic TESTR --from-始まり(カフカは、バージョン0.9以降の、このコマンドと一緒に暮らすために使用される)
こんにちは
hahhaが
11111
これは、ターミナルからのメッセージです
11111111111111111111
説明アイテム:カフカミドルウェアによって関連の生産者と消費者は、この応用形態は、多くのデータ処理システムにおいて積極的な役割を再生することができます。たとえば:いくつかの実際のビッグデータアプリケーションでは、カフカはこのように、データを保存するバッファの役割カフカを再生するために使用することができる、消費者自身のデータ・レートをデータソースから生成されたデータを保存することができます