You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Batch serving requires Google Cloud Storage to function, specifically Google Cloud Storage \(GCP\) and BigQuery.
63
65
{% endhint %}
64
66
65
-
Create a [service account ](https://cloud.google.com/iam/docs/creating-managing-service-accounts)from the GCP console and copy it to the `gcp-service-accounts` folder:
67
+
### 3.1 Set up Google Cloud Platform
68
+
69
+
Create a [service account ](https://cloud.google.com/iam/docs/creating-managing-service-accounts)from the GCP console and copy it to the `infra/docker-compose/gcp-service-accounts` folder:
@@ -74,28 +78,32 @@ Create a Google Cloud Storage bucket. Make sure that your service account above
74
78
gsutil mb gs://my-feast-staging-bucket
75
79
```
76
80
77
-
### 2.1 Configure .env
81
+
### 3.2 Configure .env
78
82
79
83
Configure the `.env` file based on your environment. At the very least you have to modify:
80
84
81
-
***FEAST\_CORE\_GCP\_SERVICE\_ACCOUNT\_KEY:** This should be your service account file name, for example `key.json`.
82
-
***FEAST\_BATCH\_SERVING\_GCP\_SERVICE\_ACCOUNT\_KEY:** This should be your service account file name, for example `key.json`.
83
-
***FEAST\_JUPYTER\_GCP\_SERVICE\_ACCOUNT\_KEY:** This should be your service account file name, for example `key.json`.
84
-
***FEAST\_JOB\_STAGING\_LOCATION:** Google Cloud Storage bucket that Feast will use to stage data exports and batch retrieval requests, for example `gs://your-gcs-bucket/staging`
85
+
| Parameter | Description |
86
+
| :--- | :--- |
87
+
| FEAST\_CORE\_GCP\_SERVICE\_ACCOUNT\_KEY | This should be your service account file name, for example `key.json`. |
88
+
| FEAST\_BATCH\_SERVING\_GCP\_SERVICE\_ACCOUNT\_KEY | This should be your service account file name, for example `key.json`|
89
+
| FEAST\_JUPYTER\_GCP\_SERVICE\_ACCOUNT\_KEY | This should be your service account file name, for example `key.json`|
90
+
| FEAST\_JOB\_STAGING\_LOCATION | Google Cloud Storage bucket that Feast will use to stage data exports and batch retrieval requests, for example `gs://your-gcs-bucket/staging`|
85
91
86
-
### 2.2 Configure .bq-store.yml
92
+
### 3.3 Configure .bq-store.yml
87
93
88
94
We will also need to configure the `bq-store.yml` file inside `infra/docker-compose/serving/` to configure the BigQuery storage configuration as well as the feature sets that the store subscribes to. At a minimum you will need to set:
89
95
90
-
***project\_id:** This is you [GCP project Id](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
91
-
***dataset\_id:** This is the name of the BigQuery dataset that tables will be created in. Each feature set will have one table in BigQuery.
96
+
| Parameter | Description |
97
+
| :--- | :--- |
98
+
| bigquery\_config.project\_id | This is you [GCP project Id](https://cloud.google.com/resource-manager/docs/creating-managing-projects). |
99
+
| bigquery\_config.dataset\_id | This is the name of the BigQuery dataset that tables will be created in. Each feature set will have one table in BigQuery. |
For this guide we will use `NodePort` for exposing Feast services. In order to do so, we must find an internal IP of at least one GKE node.
77
+
For this guide we will use `NodePort` for exposing Feast services. In order to do so, we must find an External IP of at least one GKE node. This should be a public IP.
Update `my-feast-values.yaml` based on your GCP and GKE environment.
171
146
172
147
* Required fields are paired with comments which indicate whether they need to be replaced.
173
-
* All occurrences of `EXTERNAL_IP` should be replaced with either your domain name or the IP stored in `$FEAST_IP`.
148
+
* All occurrences of `EXTERNAL_IP` should be replaced with either a domain pointing to a load balancer for the cluster or the IP stored in `$FEAST_IP`.
174
149
* Replace all occurrences of `YOUR_BUCKET_NAME` with your bucket name stored in `$FEAST_GCS_BUCKET`
150
+
* Change `feast-serving-batch.store.yaml.bigquery_config.project_id` to your GCP project Id.
151
+
* Change `feast-serving-batch.store.yaml.bigquery_config.dataset_id` to the BigQuery dataset that Feast should use.
If at any point in time you cannot resolve a problem, please see the [Getting Help](../getting-help.md) section for reaching out to the Feast community.
4
+
5
+
## How can I verify that all services are operational?
6
+
7
+
### Docker Compose
8
+
9
+
The containers should be in an `up` state:
10
+
11
+
```text
12
+
docker ps
13
+
```
14
+
15
+
```text
16
+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
17
+
d7447205bced jupyter/datascience-notebook:latest "tini -g -- start-no…" 2 minutes ago Up 2 minutes 0.0.0.0:8888->8888/tcp feast_jupyter_1
18
+
8e49dbe81b92 gcr.io/kf-feast/feast-serving:latest "java -Xms1024m -Xmx…" 2 minutes ago Up 5 seconds 0.0.0.0:6567->6567/tcp feast_batch-serving_1
19
+
b859494bd33a gcr.io/kf-feast/feast-serving:latest "java -jar /opt/feas…" 2 minutes ago Up About a minute 0.0.0.0:6566->6566/tcp feast_online-serving_1
20
+
5c4962811767 gcr.io/kf-feast/feast-core:latest "java -jar /opt/feas…" 2 minutes ago Up 2 minutes 0.0.0.0:6565->6565/tcp feast_core_1
21
+
1ba7239e0ae0 confluentinc/cp-kafka:5.2.1 "/etc/confluent/dock…" 2 minutes ago Up 2 minutes 0.0.0.0:9092->9092/tcp, 0.0.0.0:9094->9094/tcp feast_kafka_1
22
+
e2779672735c confluentinc/cp-zookeeper:5.2.1 "/etc/confluent/dock…" 2 minutes ago Up 2 minutes 2181/tcp, 2888/tcp, 3888/tcp feast_zookeeper_1
23
+
39ac26f5c709 postgres:12-alpine "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 5432/tcp feast_db_1
24
+
3c4ee8616096 redis:5-alpine "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp feast_redis_1
25
+
```
26
+
27
+
### Google Kubernetes Engine
28
+
29
+
All services should either be in a `running` state or `complete`state:
`netcat`, `telnet`, or even `curl` can be used to test whether all services are available and ports are open, but `grpc_cli` is the most powerful. It can be installed from [here](https://github.com/grpc/grpc/blob/master/doc/command_line_tool.md).
88
+
89
+
### Testing Feast Core:
90
+
91
+
```bash
92
+
grpc_cli ls ${FEAST_CORE_URL} feast.core.CoreService
93
+
```
94
+
95
+
```text
96
+
GetFeastCoreVersion
97
+
GetFeatureSet
98
+
ListFeatureSets
99
+
ListStores
100
+
ApplyFeatureSet
101
+
UpdateStore
102
+
CreateProject
103
+
ArchiveProject
104
+
ListProjects
105
+
```
106
+
107
+
### Testing Feast Batch Serving and Online Serving
108
+
109
+
```bash
110
+
grpc_cli ls ${FEAST_BATCH_SERVING_URL} feast.serving.ServingService
111
+
```
112
+
113
+
```text
114
+
GetFeastServingInfo
115
+
GetOnlineFeatures
116
+
GetBatchFeatures
117
+
GetJob
118
+
```
119
+
120
+
```bash
121
+
grpc_cli ls ${FEAST_ONLINE_SERVING_URL} feast.serving.ServingService
122
+
```
123
+
124
+
```text
125
+
GetFeastServingInfo
126
+
GetOnlineFeatures
127
+
GetBatchFeatures
128
+
GetJob
129
+
```
130
+
131
+
## How can I print logs from the Feast Services?
132
+
133
+
Feast will typically have three services that you need to monitor if something goes wrong.
134
+
135
+
* Feast Core
136
+
* Feast Serving \(Online\)
137
+
* Feast Serving \(Batch\)
138
+
139
+
In order to print the logs from these services, please run the commands below.
0 commit comments