我正在做一个小项目,在 ubuntu 上实现自动完成。我使用 Hadoop 在 Docker 中运行代码。我还使用从以下位置下载的 Amppshttp://ampps.com/download。
但是我有一个无法解决的问题。当我尝试将数据写入MySQL时。我遇到了上述问题。
“错误:java.io.IOException:通信链路失败”。
需要说明的是,我有两个 mapreduce。第一个 map 和 Reduce 都工作正常。第二个 map 工作正常。第二个 Reduce 不工作。MySQL 中没有任何更新。
我被告知在以下代码中的 Driver 类中检查我的 IP 地址:
DBConfiguration.configureDB(conf2,
"com.mysql.jdbc.Driver", // driver class
"jdbc:mysql://192.168.1.22:3306/test", // db url
"root", // user name
"root"); //password
我使用下面的代码来搜索我的 IP 地址:
ifconfig | grep inet | grep Bcast
结果如下:
inet addr:172.18.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
inet addr:169.254.9.173 Bcast:169.254.255.255 Mask:255.255.0.0
inet addr:192.168.1.22 Bcast:192.168.1.255 Mask:255.255.255.0
我将这些地址添加到 mysql 用户列表中并赋予他们所有权限:
GRANT ALL ON *.* to 'root'@'ip_address' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address' WITH GRANT OPTION;
我试过每一个 IP 地址。但还是不行。
另一个需要提及的细节是,当我启动 AMPPS 时
cd /usr/local/ampps
sudo ./Ampps
有一个警告
"The apache port is being taken by another application"
我觉得没关系,虽然我不知道怎么解决这个问题。我重启电脑,立即启动Ampps。如果我不先用浏览器,端口就不会被占用。问题还是一样。我也把我的代码上传到github了。链接是https://github.com/Wangzishan199277/Auto-completion
我真的不知道如何解决这个问题。任何答案都很好!