我同时使用Hive和MySQL(通过Google Cloud SQL),我想使用Presto轻松连接两者。我已经看到有一个针对Cloud Dataproc的Presto初始化操作,但它不能开箱即用地使用Cloud SQL。如何使初始化操作与Cloud SQL一起使用,以便在Presto中同时使用Hive/Spark和Cloud SQL?
最简单的方法是编辑在Cloud Dataproc集群上安装Presto的初始化操作。
云SQL设置
但是,在执行此操作之前,请确保配置Cloud SQL,以便它能够与Presto一起使用。您需要:
- 为Presto创建用户(或准备好用户)
- 调整任何必要的防火墙规则,以便您的Cloud Dataproc集群可以连接到Cloud SQL实例
更改初始化操作
在Presto初始化操作中,有一个部分设置Hive配置,如下所示:
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>
替换为正确的值。此外,如果您有多个云SQL实例要连接,您可以添加多个部分并为它们提供不同的名称,只要文件名以.properties
结尾即可。