gpt4 book ai didi

hadoop - 如何使datanode能够访问其私有(private)网络之外的访问?

转载 作者:行者123 更新时间:2023-12-02 21:15:55 24 4
gpt4 key购买 nike

在我的集群 CDH5.4 中,我有一个位于私有(private)和公共(public)网络上的网关节点。集群位于专用网络上。
我想使用 sqoop 从公共(public)网络上的数据库服务器中获取数据。当我发出命令时, map task 失败

Error: java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLRecoverableException: IO Error: Unknown host specified



我了解集群节点无法访问公共(public)网络上的数据库服务器。

鉴于这种公私网络架构在业界相当普遍,那么让datanodes访问公网服务器的正确方法是什么?

任何帮助都非常感谢....

网关节点
$>route -v
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.248.200.0 * 255.255.255.0 U 0 0 0 bond_internal
192.168.196.0 * 255.255.252.0 U 0 0 0 bond_external
link-local * 255.255.0.0 U 1007 0 0 bond_external
link-local * 255.255.0.0 U 1008 0 0 bond_internal
default 192.168.196.1 0.0.0.0 UG 0 0 0 bond_external

数据节点
$>route -v
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.248.200.0 * 255.255.255.0 U 0 0 0 bond0
link-local * 255.255.0.0 U 1008 0 0 bond0

最佳答案

你需要检查的东西。
Sqoop所在的节点是否正在运行具有正确的网关节点。您可以使用路由表检查并使用 route 更改它命令

   route add default gw IP_OF_GATEWAY_NODE NETWORK_INTERFACE_NAME_ON_THIS_NODE #the device name is basically what your ifconfig shows

接下来,您需要验证网关节点是否真的在转发数据包。为此,您需要编辑一个文件 /etc/sysctl.conf (随着您的 linux 发行版更改,此文件位于不同的路径中)。永久设置IP转发 on ,你将不得不改变
    net.ipv4.ip_forward=1 # if it '0' set as '1' and restart the network.

用于临时设置IP转发 on , 可以运行(重启后会变回旧值)
    sysctl -w net.ipv4.ip_forward=1

关于hadoop - 如何使datanode能够访问其私有(private)网络之外的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38779040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com