您正在查看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隧道分为两步:
为Hive启动SOCKS代理和SSH隧道
下面的步骤在客户端上建立一个隧道并创建一个SOCKS代理——SOCKS代理用于Hadoop api,隧道用于Hive/Impala JDBC连接。
在本地客户端计算机上选择两个大于1024的空闲端口。此处以1234和1235端口为空闲端口,10000端口为Hive Server端口为例。可选地,您可以为Impala添加第二个隧道。
从SSH客户端连接到网关节点,设置SSH隧道并创建SOCKS代理。例如:
- 在端口1234上创建一个SOCKS代理。
- 从本地端口(1235)到Hive Server节点端口(10000)建立SSH隧道。
- 如果您还打算使用Impala,请从本地端口1236添加第三条隧道到Impala节点端口(默认为21050)。
打开SSH应用程序。本例使用免费SSH客户机PuTTY和上面的样例端口号。
- 在用户界面上配置端口转发。例如:
- 添加
1234
作为一个动态转发端口。 - 添加
1235
作为源端口 - 添加
hive-internal-address: 10000
作为目的地。
- 添加
只要您在远程集群上使用RapidMiner Radoop, SSH隧道就必须保持运行。为了保持隧道畅通,设置
keep - alive间隔秒
物业连接
面板的值必须大于零(例如60秒)。如果您还想使用Impala,请添加一个额外的隧道:
- 添加
1236
作为源端口 - 添加
impala-internal-address: 21050
作为目的地。
- 添加
要在基于linux的系统上设置SSH,请从终端运行以下命令。这些示例使用了上面的示例端口号(1234和1235)。
如果使用私钥进行身份验证,请添加
我/路径/ / private.key
。ssh -N -D 1234 -L 127.0.0.1:1235:hive-internal-address:10000 user@gateway-public-address
只要您在远程集群上使用RapidMiner Radoop, SSH隧道就必须保持运行。为了保持隧道畅通,设置
ServerAliveInterval
在~ / . ssh / config
。通常,keepalive请求之间的间隔为60秒就足够了。注意,您可以设置ServerAliveInterval
在系统范围的配置文件、用户配置文件中,或者在SSH命令行上(使用- o
选项)。如果您还想使用Impala,请添加一个额外的隧道。
- l 127.0.0.1:1236: impala-internal-address: 21050
为SOCKS和SSH配置RapidMiner Radoop高级设置
当使用SOCKS代理和SSH隧道时,RapidMiner Radoop连接需要额外的配置设置。
从连接菜单中,选择管理Radoop连接。
单击配置按钮管理Radoop连接窗口打开连接设置对话框。
完成如下设置:
场 设置 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
值:真正的
启用:是的- 点击好吧和保存保存此连接。
- 单击快速测试按钮以测试连接。如果测试成功,您就正确地建立了到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代理通信建议完成安装。