EMR 的某些客户的数据仓库使用 EMR-Hive 存储, presto 连接 hive 快速 ad-hoc 查询, 但是有些场景下不同的业务部门有各自不同的使用 presto 查询需求, 多 EMR-Presto 集群共享 EMR-Hive 集群配置方案可以满足这种需求.
多 EMR-Presto 集群共享 EMR-Hive 集群
假设 EMR-Hive 的集群为 A 集群, 新增的 EMR-Presto 集群为 B + 集群, 设置 A 集群为 B + 共享集群, 只需要把 B + 集群的 presto-hive 配置变更即可. 具体操作方案如下:
1. 拷贝 A 集群 hdfs-site.xml,core-site.xml 到 B 集群 hadoop 用户权限目录下, 这里以 / home/hadoop 为例子,
- #cp hdfs-site.xml /home/hadoop
- #cp core-site.xml /home/hadoop
- #chown hadoop:hadoop /home/hadoop/hdfs-site.xml
- #chown hadoop:hadoop /home/hadoop/core-site.xml
2. 把 hdfs-site.xml 和 core-site.xml 文件都分发到集群所有节点下的相同目录
3. 更改 / usr/local/service/presto/etc/catalog/hive.properties 配置
- connector.name=hive-hadoop2
- hive.metastore.uri=thrift://10.1.1.101:7004,thrift://10.1.1.140:7004
- hive.config.resources=//home/hadoop//core-site.xml,/home/hadoop/hdfs-site.xml
- hive.allow-drop-table=true
其中, hive.metastore.uri 更改为 A 集群的 hive-server2 的地址
hive.config.resources 更改为刚刚设置的 / home/hadoop/hdfs-site.xml 和 / home/hadoop/core-site.xml
4. 把 / usr/local/service/presto/etc/catalog/hive.properties 分发到 presto 集群的所有节点
5. 在 emr 控制台重启 presto 集群, 包括 coordinator 和 worker 节点. 重启操作可参考, 在集群管理的更多里重启组件:
https://cloud.tencent.com/document/product/589/10860
来源: https://www.qcloud.com/developer/article/1339890