类别

版本

您正在查看9.9 -版本的RapidMiner Radoop文档点击这里查看最新版本

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 server端口;使用这个或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当您选择a时,Radoop会自动设置版本特定的默认端口Hadoop版本管理Radoop连接窗口。这些默认值总是可以更改的。如果可以从RapidMiner Radoop客户端访问集群上的端口,则可以跳过本节。

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

保护Hadoop集群最常见的方法是将其组织到一个专用网络中,并关闭网络外所有实体的端口。要使用该模型,必须确保RapidMiner Radoop客户端可以通过a . . a .连接到私有集群/网络网关节点它为用户提供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隧道就必须保持运行。为了保持隧道畅通,设置keep - alive间隔秒物业连接面板的值必须大于零(例如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 Server地址 输入本地主机。(仅适用于蜂巢版没有设置为Impala。)
    黑斑羚地址 输入本地主机。(仅适用于蜂巢版设置为Impala。)
    NameNode港口 默认为Hadoop值;不需要改变。
    资源管理器端口 默认为Hadoop值;不需要改变。
    Hive Server端口 1235(默认)或配置的端口号。(仅适用于蜂巢版没有设置为Impala。)
    Impala Daemon港口 1236(默认)或配置的端口号。(仅适用于蜂巢版设置为Impala。)
    Hadoop高级参数 关键:hadoop.rpc.socket.factory.class.default
    值:org.apache.hadoop.net.SocksSocketFactory
    启用:是的
    Hadoop高级参数 关键:hadoop.socks.server
    值:localhost: 1234
    启用:是的
    高级Hadoop参数(避免bug)hdfs - 3068当使用代理时) 关键:dfs.client.use.legacy.blockreader
    值:真正的
    启用:是的
  4. 点击测试图标好吧Save图标保存保存此连接。
  5. 单击快速测试图标快速测试按钮以测试连接。如果测试成功,您就正确地建立了到Hadoop集群的安全连接。

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

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

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

使用Radoop代理进行网络连接(推荐)

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服务主体中使用的这些IP地址或主机名对。在Linux和MacOS上,hosts文件位于设置,在Windows上为% system32% \ \等司机\主机。hosts文件中的条目应该包括属于集群的所有节点,如下面的示例所示。

# Radoop Proxy设置的hosts文件的示例内容10.0.2.26 ip-10-0-2-26.example.internal # master node 10.0.3.26 ip-10-0-3-17.example.internal # worker node-1 10.0.3.17 ip-10-0-4-26.example.internal # worker node-3 10.0.4.57 ip-10-0-4-57.example.internal # worker node-4

要在Studio中为Radoop连接配置Radoop代理,请查看指南配置Radoop代理连接。有关自定义Server中的安装或部署独立Radoop Proxy的信息,请参见自定义Radoop Proxy安装部分。最后但并非最不重要的是安全与SSL的Radoop代理通信建议完成安装。