@@ -32,6 +32,7 @@ ln -sf $JARS_DIR/hudi-hadoop-mr*.jar $JARS_DIR/hadoop-mr.jar
3232ln -sf $JARS_DIR /hudi-spark* .jar $JARS_DIR /spark.jar
3333ln -sf $JARS_DIR /hudi-utilities-bundle* .jar $JARS_DIR /utilities.jar
3434ln -sf $JARS_DIR /hudi-utilities-slim* .jar $JARS_DIR /utilities-slim.jar
35+ ln -sf $JARS_DIR /hudi-kafka-connect-bundle* .jar $JARS_DIR /kafka-connect.jar
3536
3637
3738# #
@@ -131,26 +132,64 @@ test_utilities_bundle () {
131132}
132133
133134
135+ # #
136+ # Function to test the kafka-connect bundle.
137+ # It runs zookeeper, kafka broker, schema registry, and connector worker.
138+ # After producing and consuming data, it checks successful commit under `.hoodie/`
139+ #
140+ # 1st arg: path to the hudi-kafka-connect-bundle.jar (for writing data)
141+ #
142+ # env vars (defined in container):
143+ # CONFLUENT_HOME: path to the confluent community directory
144+ # KAFKA_CONNECT_PLUGIN_PATH_LIB_PATH: path to install hudi-kafka-connect-bundle.jar
145+ # #
146+ test_kafka_connect_bundle () {
147+ KAFKA_CONNECT_JAR=$1
148+ cp $KAFKA_CONNECT_JAR $KAFKA_CONNECT_PLUGIN_PATH_LIB_PATH
149+ $CONFLUENT_HOME /bin/zookeeper-server-start $CONFLUENT_HOME /etc/kafka/zookeeper.properties &
150+ $CONFLUENT_HOME /bin/kafka-server-start $CONFLUENT_HOME /etc/kafka/server.properties &
151+ sleep 10
152+ $CONFLUENT_HOME /bin/schema-registry-start $CONFLUENT_HOME /etc/schema-registry/schema-registry.properties &
153+ sleep 10
154+ $CONFLUENT_HOME /bin/kafka-topics --create --topic hudi-control-topic --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
155+ $WORKDIR /kafka/produce.sh
156+ $WORKDIR /kafka/consume.sh
157+ }
158+
159+
160+ # ###########################
161+ # Execute tests
162+ # ###########################
163+
164+ echo " ::warning::validate.sh validating spark & hadoop-mr bundle"
134165test_spark_hadoop_mr_bundles
135166if [ " $? " -ne 0 ]; then
136167 exit 1
137168fi
169+ echo " ::warning::validate.sh done validating spark & hadoop-mr bundle"
138170
139171if [[ $SPARK_HOME == * " spark-2.4" * ]] || [[ $SPARK_HOME == * " spark-3.1" * ]]
140172then
141- echo " ::warning::validate.sh testing utilities bundle"
173+ echo " ::warning::validate.sh validating utilities bundle"
142174 test_utilities_bundle $JARS_DIR /utilities.jar
143175 if [ " $? " -ne 0 ]; then
144176 exit 1
145177 fi
146- echo " ::warning::validate.sh done testing utilities bundle"
178+ echo " ::warning::validate.sh done validating utilities bundle"
147179else
148- echo " ::warning::validate.sh skip testing utilities bundle for non-spark2.4 & non-spark3.1 build"
180+ echo " ::warning::validate.sh skip validating utilities bundle for non-spark2.4 & non-spark3.1 build"
149181fi
150182
151- echo " ::warning::validate.sh testing utilities slim bundle"
183+ echo " ::warning::validate.sh validating utilities slim bundle"
152184test_utilities_bundle $JARS_DIR /utilities-slim.jar $JARS_DIR /spark.jar
153185if [ " $? " -ne 0 ]; then
154186 exit 1
155187fi
156- echo " ::warning::validate.sh done testing utilities slim bundle"
188+ echo " ::warning::validate.sh done validating utilities slim bundle"
189+
190+ echo " ::warning::validate.sh validating kafka connect bundle"
191+ test_kafka_connect_bundle $JARS_DIR /kafka-connect.jar
192+ if [ " $? " -ne 0 ]; then
193+ exit 1
194+ fi
195+ echo " ::warning::validate.sh done validating kafka connect bundle"
0 commit comments