@@ -92,63 +92,102 @@ Follow these steps to set up your development environment:
92
92
Use Docker Compose to start Kafka, Zookeeper, Cassandra, and Spark services:
93
93
``` yaml
94
94
version : ' 3.9'
95
- services :
96
- zookeeper :
97
- image : bitnami/zookeeper:latest
98
- ports :
99
- - " 2181:2181"
100
- environment :
101
- - ALLOW_ANONYMOUS_LOGIN=yes
102
- networks :
103
- stock-net :
104
- ipv4_address : 172.28.1.1
105
-
106
- kafka :
107
- image : bitnami/kafka:latest
108
- ports :
109
- - " 9092:9092"
110
- environment :
111
- - KAFKA_BROKER_ID=1
112
- - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
113
- - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://172.28.1.2:9092
114
- - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
115
- - ALLOW_PLAINTEXT_LISTENER=yes
116
- depends_on :
117
- - zookeeper
118
- networks :
119
- stock-net :
120
- ipv4_address : 172.28.1.2
121
-
122
- cassandra :
123
- image : cassandra:latest
124
- ports :
125
- - " 9042:9042"
126
- volumes :
127
- - ./init-cassandra:/init-cassandra
128
- environment :
129
- - CASSANDRA_START_RPC=true
130
- networks :
131
- stock-net :
132
- ipv4_address : 172.28.1.3
133
-
134
- spark :
135
- image : bitnami/spark:latest
136
- volumes :
137
- - ./spark:/opt/bitnami/spark/jobs
138
- ports :
139
- - " 8080:8080"
140
- depends_on :
141
- - kafka
142
- networks :
143
- stock-net :
144
- ipv4_address : 172.28.1.4
145
95
96
+ name : " realtime-stock-market"
97
+
98
+ services :
99
+ zookeeper :
100
+ image : bitnami/zookeeper:latest
101
+ ports :
102
+ - " 2181:2181"
103
+ environment :
104
+ - ALLOW_ANONYMOUS_LOGIN=yes
105
+ networks :
106
+ stock-net :
107
+ ipv4_address : 172.28.1.1
108
+
109
+ kafka :
110
+ image : bitnami/kafka:latest
111
+ ports :
112
+ - " 9092:9092"
113
+ environment :
114
+ - KAFKA_BROKER_ID=1
115
+ - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
116
+ - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://172.28.1.2:9092
117
+ - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
118
+ - ALLOW_PLAINTEXT_LISTENER=yes
119
+ depends_on :
120
+ - zookeeper
146
121
networks :
147
122
stock-net :
148
- driver : bridge
149
- ipam :
150
- config :
151
- - subnet : 172.28.0.0/16
123
+ ipv4_address : 172.28.1.2
124
+ volumes :
125
+ - ./scripts/init-kafka.sh:/init-kafka.sh
126
+ # entrypoint: ["/bin/bash", "init-kafka.sh"]
127
+ restart : always
128
+
129
+ cassandra :
130
+ image : cassandra:latest
131
+ ports :
132
+ - " 9042:9042"
133
+ volumes :
134
+ - ./init-cassandra:/init-cassandra
135
+ - ./scripts/init-cassandra-schema.sh:/init-cassandra-schema.sh
136
+ environment :
137
+ - CASSANDRA_START_RPC=true
138
+ networks :
139
+ stock-net :
140
+ ipv4_address : 172.28.1.3
141
+ # entrypoint: ["/bin/bash", "init-cassandra-schema.sh"]
142
+ restart : always
143
+
144
+ spark :
145
+ image : bitnami/spark:latest
146
+ volumes :
147
+ - ./spark:/opt/bitnami/spark/jobs
148
+ - ./scripts/submit-spark-job.sh:/opt/bitnami/spark/submit-spark-job.sh
149
+ ports :
150
+ - " 8080:8080"
151
+ depends_on :
152
+ - kafka
153
+ networks :
154
+ stock-net :
155
+ ipv4_address : 172.28.1.4
156
+ # entrypoint: ["sh", "-c", "./submit-spark-job.sh"]
157
+ restart : always
158
+
159
+ kafka_producer :
160
+ build :
161
+ context : ./kafka-producer
162
+ dockerfile : kafka_producer.dockerfile
163
+ depends_on :
164
+ - kafka
165
+ networks :
166
+ stock-net :
167
+ ipv4_address : 172.28.1.8
168
+ restart : always
169
+
170
+ plotly :
171
+ build :
172
+ context : ./plotly
173
+ dockerfile : plotly.dockerfile
174
+ volumes :
175
+ - ./plotly/dashboard.py:/dashboard.py
176
+ ports :
177
+ - " 8050:8050"
178
+ depends_on :
179
+ - cassandra
180
+ networks :
181
+ stock-net :
182
+ ipv4_address : 172.28.1.9
183
+ restart : always
184
+
185
+ networks :
186
+ stock-net :
187
+ driver : bridge
188
+ ipam :
189
+ config :
190
+ - subnet : 172.28.0.0/16
152
191
` ` `
153
192
154
193
2. **Run Docker Compose**:
0 commit comments