Я следил за 5 минутами, как настроить базу данных htap с tidb_tispark, и все работает, пока я не попадаю в раздел Запустите TiSpark .Моя первая проблема возникает при выполнении строки:
docker-compose exec tispark-master /opt/spark-2.1.1-bin-hadoop2.7/bin/spark-shell
Но я справился с этим, изменив версию spark на версию, найденную внутри контейнера:
docker-compose exec tispark-master /opt/spark-2.3.3-bin-hadoop2.7/bin/spark-shell
Моя вторая проблема возникаетпри выполнении трехстрочного блока:
import org.apache.spark.sql.TiContext
val ti = new TiContext(spark)
ti.tidbMapDatabase("TPCH_001")
Когда я выполняю последний оператор, я получаю следующий вывод
scala> ti.tidbMapDatabase("TPCH_001")
2019-07-11 16:14:32 WARN General:96 - Plugin (Bundle) "org.datanucleus" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/opt/spark/jars/datanucleus-core-3.2.10.jar" is already registered, and you are trying to register an identical plugin located at URL "file:/opt/spark-2.3.3-bin-hadoop2.7/jars/datanucleus-core-3.2.10.jar."
2019-07-11 16:14:32 WARN General:96 - Plugin (Bundle) "org.datanucleus.api.jdo" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/opt/spark/jars/datanucleus-api-jdo-3.2.6.jar" is already registered, and you are trying to register an identical plugin located at URL "file:/opt/spark-2.3.3-bin-hadoop2.7/jars/datanucleus-api-jdo-3.2.6.jar."
2019-07-11 16:14:32 WARN General:96 - Plugin (Bundle) "org.datanucleus.store.rdbms" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/opt/spark/jars/datanucleus-rdbms-3.2.9.jar" is already registered, and you are trying to register an identical plugin located at URL "file:/opt/spark-2.3.3-bin-hadoop2.7/jars/datanucleus-rdbms-3.2.9.jar."
2019-07-11 16:14:36 WARN ObjectStore:568 - Failed to get database global_temp, returning NoSuchObjectException
Это не мешает мне выполнить запрос:
spark.sql("select * from nation").show(30);
Но когда я следую дальнейшим шагам руководства, чтобы изменить базу данных из MySQL, изменения не отражаются немедленно в Spark.Кроме того, в какой-то момент в будущем (я думаю, что> через 5 минут) измененная строка перестает отображаться в SQL-запросах Spark.
Я довольно новичок в этом виде настройки и недействительно знаю, как решить эту проблему.Поиски предупреждений, которые я получил, не освещались.
Я не знаю, полезно ли это, но когда я подключаю MySQL, я получаю версию сервера:
Server version: 5.7.25-TiDB-v3.0.0-rc.1-309-g8c20289c7 MySQL Community Server (Apache License 2.0)