公司给了一台机器M ,128G 10T , 单单内存就 非常棒了,当然 不白给,就是为了 整 neo4j + spark 的反欺诈尝试。
我自己在本地 搭建了 neo4j 和spark 全套,测试都已经没有问题,然后开始在 M 上 搭建开发环境,又要从零开始,说实话不是运维,再次做的时候还是有点不耐烦,顺便还帮同事在她本机配置了环境,一天时间都在整理。老大说,你应该整个脚本,让大家可以自动化 安装配置这些环境,其实不是很难,但是我个人认为还是有点 繁琐
neo4j 使用的 Linux 企业版 3.3.3,这个 商业版 按道理是收费的,不过我们可以几乎免费使用真爽。快 稳 狠
不过启动 Neo4j 尝试 本地去连接 M 上的 Neo4j 发现 连接被拒绝了。悲剧了。
开始找原因,第一 当然怀疑 是不是 Neo4j 没有完全启动成功,检验了一番,Neo4j 没有报错,log 也无错误
第二 开始怀疑是不是防火墙,按道理运维给你的机器,防火墙一般都是 最严格的,只有ssh 22 端口给你留着
首先 先查看 M 是否安装 了 iptables
发现有
然后看 防火墙规则
iiptables -L
发现 基本没有定义
然后 nc telnet 测试 端口 连接
在 M 机器 启动端口连接 监听
nc -l 7687
本地则启动 telnet 尝试连接
telnet 123.23.43.23 7687
发现 根本没有反应,说明 端口真的没有打开。7474 尝试也是这样
然后 在 M 把 Neo4j 的 7474 7687 两个 端口 打开 ,保存 并 重启防火墙, 要格外注意 dport 前方是两个 【-】,
iptables -A INPUT -p udp --dport 7687 -j ACCEPT
iptables -A INPUT -p tcp --dport 7687 -j ACCEPT
iptables -A INPUT -p tcp --dport 7474 -j ACCEPT
iptables -A INPUT -p udp --dport 7474 -j ACCEPT
保存 并重启防火墙 查看 配置规则是否生效
//保存规则
service iptables save
//重启下iptables
service iptables restart
iptables -L
然后 nc telnet 测试 这两个端口 ,发现可以连接了 !!!!
但是 尝试连接 Neo4j还是没有成功,一度陷入僵局 ,难道 还有防火墙之外的墙,百度发现 原来 Neo4j 的配置文件也需要做一些
修改 ,并不像 neo4j console 提示的那样 ,本身 neo4j 并没有开启远程访问
然后修改 Neo4j 根目录下的 $NEO4J_HOME/conf/neo4j.conf
找到四项被注释掉的,去掉 【#】 打开 生效就可以
dbms.connectors.default_listen_address=0.0.0.0
dbms.connector.bolt.enabled=true
dbms.connector.bolt.listen_address=:7687
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=:7474
dbms.connector.https.enabled=true
dbms.connector.https.listen_address=:7473
修改完后 保存并退出,重启 Neo4j ,再次本地 连接M上的Neo4j 发现连上了。 而且M的 7474 web 也可以在本地访问了
参考:
Neo远程无法连接
http://neo4j.com.cn/topic/58e60893412d3d2c19c32de9
centos防火墙 修改
https://www.jianshu.com/p/c56ff12df648