Tengo una base de datos MySQL implementada en la instancia de Google Compute Engine y estoy tratando de mover los datos a Big Query para un análisis. Estoy tratando de hacer que esto funcione con Google Data Fusion pero encuentro el siguiente error:
java.lang.RuntimeException: java.lang.RuntimeException: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at org.apache.hadoop.mapreduce.lib.db.DBInputFormat.setConf(DBInputFormat.java:171) ~[hadoop-mapreduce-client-core-2.9.2.jar:na] at org.apache.spark.rdd.NewHadoopRDD.getPartitions(NewHadoopRDD.scala:124) ~[spark-core_2.11-2.3.4.jar:2.3.4] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:253) ~[spark-core_2.11-2.3.4.jar:2.3.4] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:251) ~[spark-core_2.11-2.3.4.jar:2.3.4] at scala.Option.getOrElse(Option.scala:121) ~[scala-library-2.11.8.jar:na] at org.apache.spark.rdd.RDD.partitions(RDD.scala:251) [spark-core_2.11-2.3.4.jar:2.3.4] at io.cdap.cdap.app.runtime.spark.data.DatasetRDD.getPartitions(DatasetRDD.scala:61) ~[na:na] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:253) ~[spark-core_2.11-2.3.4.jar:2.3.4] at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:251) ~[spark-core_2.11-2.3.4.jar:2.3.4] at scala.Option.getOrElse(Option.scala:121) ~[scala-library-2.11.8.jar:na] at org.apache.spark.rdd.RDD.partitions(RDD.scala:251) [spark-core_2.11-2.3.4.jar:2.3.4] at org.apache.spark.rdd.UnionRDD$$anonfun$1.apply(UnionRDD.scala:84) ~[spark-core_2.11-2.3.4.jar:2.3.4] at org.apache.spark.rdd.UnionRDD$$anonfun$1.apply(UnionRDD.scala:84) ~[spark-core_2.11-2.3.4.jar:2.3.4]El error en sí es bastante sencillo. Cloud Data Fusion no se conecta correctamente a mi instancia de MySQL. La pregunta es ¿cómo resolver esto? ¿Realmente tengo que configurar algún tipo de VPC aunque todos los recursos estén en el mismo proyecto de Google? ¿Cómo puedo ver el entorno de red de mi clúster/entorno de Google Cloud Fusion para poder validar que los puertos correctos están abiertos, etc.? Ingresé mi cadena de conexión JDBC en un cliente jdbc externo y puedo acceder a mi base de datos a través de una IP pública, así que sé que funciona.