赞
踩
hms使用mysql作为Backend metadata database, 但是启动爆如下错误.
Underlying cause: 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.
docker 文件
FROM docker.io/apache/hive:4.0.0
COPY ./mysql-connector-java-8.0.25.jar /opt/hive/lib/
COPY ./postgresql-42.7.3.jar /opt/hive/lib/
原生的hive不带pg以及mysql的驱动包,所以这里要自己构建镜像添加这两个包到/opt/hive/lib
目录下.
docker-compose 文件
version: '3' services: hms: image: custom_hive:latest ports: - "9083:9083" environment: SERVICE_NAME: metastore DB_DRIVER: mysql SERVICE_OPTS: -Djavax.jdo.option.ConnectionDriverName=com.mysql.cj.jdbc.Driver -Djavax.jdo.option.ConnectionURL=jdbc:mysql://metadb:3306/metastore?createDatabaseIfNotExist=true -Djavax.jdo.option.ConnectionUserName=root -Djavax.jdo.option.ConnectionPassword=abcd volumes: - warehouse:/opt/hive/data/warehouse links: - metadb depends_on: - metadb metadb: image: mysql:8.0 container_name: metadb ports: - "3306:3306" environment: - "MYSQL_ROOT_PASSWORD=abcd" volumes: warehouse: networks: default: name: test-net
原因是连接的urljdbc:mysql://metadb:3306/metastore?createDatabaseIfNotExist=true
即便有参数createDatabaseIfNotExist=true
设置为true还是不能自动创建databse
.所以要预先在mysql上面创建好metastore
这个数据库,hms才能启动成功.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。