-
Notifications
You must be signed in to change notification settings - Fork 2
/
docker-compose.yaml
141 lines (130 loc) · 4.07 KB
/
docker-compose.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
version: '3.7'
services:
cassandra:
build:
context: cassandra
hostname: cassandra
image: dotingestion2:cassandra
container_name: cassandra
environment:
- CASSANDRA_BROADCAST_ADDRESS=cassandra
- CASSANDRA_KEYSPACE=dota_ks
- CASSANDRA_MATCH_TABLE=matches
ports:
- "9042:9042"
zookeeper:
hostname: zookeeper
image: confluentinc/cp-zookeeper:6.1.1
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_SERVER_ID: "1"
kafkaserver:
hostname: kafkaserver
image: confluentinc/cp-kafka:6.1.1
container_name: kafkaserver
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 0
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafkaserver:9092
KAFKA_MESSAGE_MAX_BYTES: 1677722
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1
KAFKA_DEFAULT_REPLICATION_FACTOR: 1
KAFKA_CONFLUENT_METADATA_TOPIC_REPLICATION_FACTOR: 1
connect-cassandra:
build:
context: connect-cassandra
image: dotingestion2:kafka-connect-cassandra
container_name: connect-cassandra
depends_on:
- kafkaserver
- cassandra
connect-elasticsearch:
build:
context: connect-elastic
image: dotingestion2:kafka-connect-elasticsearch
container_name: connect-elasticsearch
depends_on:
- kafkaserver
- elasticsearch
kafkastream:
build:
context: stream
image: dotingestion2:kafkastream
container_name: kafkastream
depends_on:
- kafkaserver
- kafkaproducer
kafkaproducer:
build:
context: ingestion
image: dotingestion2:ingestion
container_name: kafkaproducer
environment:
API_ENDPOINT: http://api.steampowered.com/IDOTA2Match_570/GetMatchHistoryBySequenceNum/V001/?key={}&start_at_match_seq_num={}
TOPIC: dota_raw
MATCH_SEQ_NUM: steam
HISTORY_ENDPOINT: https://api.steampowered.com/IDOTA2Match_570/GetMatchHistory/V001/?key={}&matches_requested=1
INTERVAL: "40"
depends_on:
- kafkaserver
webui:
image: provectuslabs/kafka-ui:latest
container_name: kafkaWebUI
environment:
KAFKA_CLUSTERS_0_NAME: my_cluster
KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafkaServer:9092
ports:
- 8080:8080
depends_on:
- kafkaserver
spark:
build:
context: spark
image: dotingestion2:spark
container_name: spark
depends_on:
- kafkaserver
- elasticsearch
- connect-elasticsearch
elasticsearch:
hostname: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
container_name: elasticsearch
ports:
- "9200:9200"
environment:
- node.name=elasticsearch
- cluster.name=elasticsearch-docker-cluster
- discovery.seed_hosts=elasticsearch
- cluster.initial_master_nodes=elasticsearch
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
depends_on:
- kafkaserver
kibana:
image: docker.elastic.co/kibana/kibana:7.12.1
container_name: kibana
ports:
- "5601:5601"
depends_on:
- kafkaserver
api:
build:
context: api
image: dotingestion2:api
container_name: api
ports:
- "3000:3000"
environment:
PORT: "3000"
depends_on:
- kafkaserver