类别

版本

Hadoop集群组网概述

存储在Hadoop集群中的数据通常是机密的,因此确保您的数据不受未经授权的访问是非常重要的。许多公司决定将Hadoop集群部署到防火墙后面的单独网络中。下面的部分提供了一些建议的方法,以确保RapidMiner Radoop可以连接到这些集群。

注意:在实现RapidMiner Radoop之前,您必须有一个功能完整的Hadoop集群。Hadoop集群管理员可以使用以下提示和技巧,它们仅作为有用的建议提供,并不是受支持的特性。

RapidMiner Radoop客户端需要访问集群的以下端口才能正常运行。为了避免打开所有这些端口,我们建议使用Radoop代理RapidMiner服务器自带的安全代理解决方案,或作为独立Docker容器请参见Radoop Proxy的详细信息在下面。

组件 默认端口 笔记
HDFS NameNode 8020或9000 NameNode主节点必选。
ResourceManager 8032或8050和8030 8031 8033 ResourceManager主节点上的资源管理平台。
JobHistory服务器端口 10020 用于在MapReduce作业终止后访问相关信息的端口。
DataNode港口 50010和50020或1004 上需要访问这些端口每一个奴隶节点。
Hive服务器端口 10000 Hive主节点上的Hive服务器端口;使用这个或Impala端口(如下)。
Impala守护端口 21050 运行Impala守护进程的节点上的Impala守护进程端口;使用这个或Hive端口(如上)。
应用程序主 所有可能的端口 应用程序主机在绑定时使用随机端口。属性可以为此指定允许的端口范围
yarn.app.mapreduce.am.job.client.port-range的属性连接设置对话框。
时间轴服务 8190 这是Hadoop 3所需要的。详细信息可以在hadoop参数中找到yarn.timeline-service.webapp.address
Kerberos 88 可选:如果集群启用了Kerberos,客户机需要能够访问集群。(TCP和UDP均使用)
密码匙管理服务 16000 可选:如果集群使用了密钥管理服务(KMS),则需要客户端可以访问它,连接uri信息在hadoop参数中dfs.encryption.key.provider.uri

RapidMiner Radoop在选择端口时,会自动设置对应版本的默认端口Hadoop版本管理Radoop连接窗口。这些默认值总是可以更改的。如果您可以通过RapidMiner Radoop客户端访问集群上的端口,则可以跳过本节。

下面的选项描述了保护这些端口的一些方法,并确保只有RapidMiner Radoop客户端可以访问它们。

保护Hadoop集群最常见的方法是将其组织到一个私有网络中,并关闭网络外所有实体的端口。使用此模型时,必须确保RapidMiner Radoop客户端能够通过一个接口连接到私有集群/网络网关节点它为用户提供了SSH隧道和可选的SOCKS代理。为Hadoop设置SOCKS代理,为Hive(或Impala)设置SSH隧道是一个两步过程:

  1. 建立SSH隧道
  2. 配置RapidMiner Radoop

为Hive启动SOCKS代理和SSH隧道

下面的步骤设置隧道并在客户端上创建SOCKS代理——SOCKS代理用于Hadoop api,隧道用于Hive/Impala JDBC连接。

  1. 在本地客户端计算机上选择两个1024以上的空闲端口。此处以“1234”和“1235”端口为空闲端口,“10000”端口为Hive Server端口为例。可选地,您可以为Impala添加第二个隧道。

  2. 从您的SSH客户机连接到网关节点,设置SSH隧道并创建SOCKS代理。例如:

    • 在端口1234上创建SOCKS代理。
    • 从本地端口(1235)到Hive Server节点端口(10000)建立SSH隧道。
    • 如果您计划额外使用Impala,请从本地端口1236添加第三条隧道到Impala节点端口(默认为21050)。

打开您的SSH应用程序。本例使用免费的SSH客户端PuTTY和上面的示例端口号。

  1. 在用户界面上配置端口转发。例如:
    • 添加1234作为一个动态转发端口。
    • 添加1235作为源端口
    • 添加hive-internal-address: 10000作为目的地。
  2. 只要您在远程集群上使用RapidMiner Radoop, SSH隧道就必须一直运行。要保持隧道开放,请设置维持时间间隔的秒数的属性连接面板的值大于0(例如60秒)。

  3. 如果你也想使用Impala,添加一个额外的隧道:

    • 添加1236作为源端口
    • 添加impala-internal-address: 21050作为目的地。

在linux系统中,在终端上运行以下命令安装SSH。这些示例使用上面的示例端口号(1234和1235)。

  1. 如果使用私钥进行身份验证,请添加我/路径/ / private.key

    ssh -N -D 1234 -L 127.0.0.1:1235:hive-internal-address:10000 user@gateway-public-address
  2. 只要您在远程集群上使用RapidMiner Radoop, SSH隧道就必须一直运行。要保持隧道开放,请设置ServerAliveInterval~ / . ssh / config.通常,keepalive请求之间的间隔60秒就足够了。注意,您可以设置ServerAliveInterval在系统级配置文件、用户配置文件或SSH命令行(使用- o选项)。

  3. 如果您还想使用Impala,请添加一个额外的隧道。

    - l 127.0.0.1:1236: impala-internal-address: 21050

为SOCKS和SSH配置RapidMiner Radoop高级配置

当使用SOCKS代理和SSH隧道时,RapidMiner Radoop连接需要额外的配置设置。

  1. 连接菜单中,选择管理Radoop连接

  2. 单击配置图标配置按钮。管理Radoop连接窗口以打开连接设置对话框。

  3. 请按照如下步骤完成设置:

    设置
    NameNode地址 输入HDFS主节点的私有主机名/IP地址。
    资源管理器地址 输入YARN主节点的私有主机名/IP地址。
    Hive服务器地址 输入本地主机.(只适用于蜂巢版未设置为黑斑羚。)
    黑斑羚地址 输入本地主机.(只适用于蜂巢版设置为黑斑羚。)
    NameNode港口 默认为Hadoop值;不需要改变。
    资源管理器端口 默认为Hadoop值;不需要改变。
    Hive Server端口 1235(默认值)或您配置的端口号。(只适用于蜂巢版未设置为黑斑羚。)
    Impala Daemon端口 1236(默认值)或您配置的端口号。(只适用于蜂巢版设置为黑斑羚。)
    Hadoop高级参数 关键:hadoop.rpc.socket.factory.class.default
    值:org.apache.hadoop.net.SocksSocketFactory
    启用:是的
    Hadoop高级参数 关键:hadoop.socks.server
    值:localhost: 1234
    启用:是的
    高级Hadoop参数(以避免错误hdfs - 3068使用代理时) 关键:dfs.client.use.legacy.blockreader
    值:真正的
    启用:是的
  4. 点击测试图标好吧而且Save图标保存保存此连接。
  5. 单击快速测试图标快速测试按钮测试连接。如果测试成功,那么您已经正确地建立了到Hadoop集群的安全连接。

将客户端节点引入专用网络的另一种方法是定义虚拟专用网络(VPN)。为此,请参考OpenVPN文档或咨询您的网络管理员以了解更多详细信息。在定义VPN并将客户端计算机连接到VPN之后,您可以从客户端访问所有必要的Hadoop端口;不需要进一步配置。

如果Hadoop节点没有在专用网络中受到保护,也没有与Internet隔离,那么必须使用适当的防火墙设置来保护数据。因为Hadoop集群通常由许多节点组成,一个节点上的服务与其他节点上的其他服务通信,如果有防火墙,所有这些服务端口必须是开放的。一种常见的做法是在集群内的Hadoop节点之间打开所有端口。

此外,您必须打开所需的港口所有RapidMiner Radoop客户端。注意,当您向集群中添加更多节点时,这些设置可能变得复杂且难以维护。最好将所有Hadoop节点组织到一个私有网络中,如上一节所述袜子代理

使用Radoop Proxy组网(推荐)

Radoop Proxy大大简化了网络设置:只需在防火墙上打开一个端口,Radoop客户端就可以访问Hadoop集群。详情见下表。

默认端口# 笔记
1081 该端口用于Radoop Proxy使用,在安装Radoop Proxy时配置

如果使用Kerberos保护集群,则需要将本地Kerberos客户机配置为只使用TCP通信。你可以通过添加Udp_preference_limit = 1到客户端kerberos配置文件。

在Hadoop集群中,DNS和反向DNS查找对于Hadoop服务的运行至关重要。RapidMiner Studio和集群可能不共享同一个网络,因此为了正常运行,需要将所有节点的内部IP地址和主机名添加到网络名称服务(允许动态配置)或本地主机文件(允许静态配置)。如果节点可以通过多个IP地址或主机名访问,那么必须使用为Hadoop服务配置的和Kerberos的服务主体中使用的那些对。在Linux和MacOS上,hosts文件位于设置,在Windows的% system32% \ \等司机\主机.hosts文件中的条目应该包括属于集群的所有节点,如下例所示。

10.0.2.26 ip- 0-2-26. Example .internal #主节点10.0.3.26 ip-10-0-3-26.example.internal #工作节点-1 10.0.3.17 ip-10-0-3-17.example.internal #工作节点-2 10.0.4.26 ip-10-0-4-26.example.internal #工作节点-3 10.0.4.57 ip-10-0-4-57.example.internal #工作节点-4

关于在Studio中为Radoop连接配置Radoop代理,请参阅指南配置Radoop代理连接.有关自定义服务器中的安装或部署独立的Radoop代理,请参见自定义安装Radoop代理章节。最后但并非最不重要的安全Radoop使用SSL进行代理通信建议完成设置。