Я использую как Hive, так и MySQL (через Google Cloud SQL), и я хочу использовать Presto для подключения к легкому. Я видел, что для Cloud Dataproc есть Presto initialization action, но он не работает с Cloud SQL из коробки. Как я могу получить это действие инициализации для работы с облачным SQL, чтобы я мог использовать как Hive/Spark, так и Cloud SQL с Presto?Использование Presto в облачном Dataproc с Google Cloud SQL?
ответ
Самый простой способ сделать это - отредактировать действие инициализации, устанавливающее Presto в кластере Cloud Dataproc.
установки Cloud SQL
Перед тем, как сделать это, однако, не забудьте настроить Cloud SQL поэтому он будет работать с Presto. Вам нужно будет:
- Создайте пользователя для Presto (или есть пользователь готов)
- Установите необходимые правила брандмауэра, чтобы ваш кластер Cloud Dataproc может подключиться к экземпляру Cloud SQL
Изменение действия инициализации
В действии инициализации Presto есть раздел, который устанавливает конфигурацию улья и выглядит следующим образом:
cat > presto-server-${PRESTO_VERSION}/etc/catalog/hive.properties <<EOF
connector.name=hive-hadoop2
hive.metastore.uri=thrift://localhost:9083
EOF
Вы можете добавить новый раздел (см. Ниже), который задает свойства mysql. Добавить что-то вроде этого:
cat > presto-server-${PRESTO_VERSION}/etc/catalog/mysql.properties <<EOF
connector.name=mysql
connection-url=jdbc:mysql://<ip_address>:3306
connection-user=<username>
connection-password=<password>
EOF
Вы, очевидно, хотите заменить <ip_address>
<username>
, и <password>
с вашими правильными значениями. Кроме того, если у вас есть несколько экземпляров Cloud SQL для подключения, вы можете добавить несколько разделов и дать им разные имена, если имя файла заканчивается на .properties
.