我在google计算引擎上配置了两个docker容器。
第一个容器:我在它上面加载了一个数据库,当我通过localhost/mylaptop上的sql客户机连接它时,它运行良好。注意,我还使用了--网络,以便可以在两个容器之间进行通信。
# Run the docker container
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=mypassword" \
-p 1433:1433 --name data-engr-sql-svr -h data-engr-sql-svr \
--network nc-de-network \
-d mcr.microsoft.com/mssql/server:2019-latest
第二个容器:我正在运行一个安装了cloudera express的自定义容器。
它的工作原理如下。我已经配置好在系统启动时运行它,并且我必须ssh到端口122才能使用容器。
docker run -d -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-h cnt7-xxx-cdh63 \
--name cnt7-xxx-cdh63 \
--network nc-de-network \
-p 122:22 \
-p 7180:7180 \
-p 8889:8889 \
-p 3306:3306 \
-p 8890:8890 \
-p 4040:4040 \
-p 18088:18088 \
-p 10000:10000 \
-p 21050:21050 \
-p 9870:9870 \
-p 9092:9092 \
-p 2181:2181 \
-p 11000:11000 \
-p 41414:41414 \
-p 8088:8088 \
--privileged=true \
-it cnt7-xxx-cdh63 /usr/sbin/init
从sql server数据库导入到hdfs。我试着用下面的方法。
sudo -u hdfs sqoop list-databases \
--connect "jdbc:sqlserver://localhost:1433;instanceName=data-engr-sql-svr;databaseName=AdventureWorks2019" \
--username sa \
--password pwd
但我得到以下错误
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host localhost, port 1433 has failed. Error: "Connection refused. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".
我该怎么做?注意:两个容器单独工作正常
1条答案
按热度按时间lmvvr0a81#
你需要使用
data-engr-sql-svr:1433
,而不是localhost作为连接字符串。注意:运行sqoop不需要整个cloudera环境,应该使用
docker exec
而不是ssh