在2个Windows 10上设置Hadoop多集群

时间:2020-09-30 04:10:20

标签: hadoop

我正在尝试在2个Windows设备之间建立一个多节点Hadoop集群。我正在使用Hadoop 2.9.2。 请问我该如何实现呢?

2 个答案:

答案 0 :(得分:1)

  1. 使用this guide在两个系统上安装open-ssh服务器。在本地计算机上生成新的SSH公钥和私钥对是使用无密码的远程服务器进行身份验证的第一步。将公共密钥添加到authorized_keys,并将您的主机名添加到已知主机列表。您可以通过搜索互联网找到有关如何执行此操作的指南。 2.将您的hadoop主机和从机ips添加到主机文件中。打开“ C:\ Windows \ System32 \ drivers \ etc \ hosts” 并添加
your-master-ip hadoopMaster
your-salve-ip hadoopSlave

您可以在配置文件中使用这些名称。

与Linux系统非常相似,以下是在Windows上运行Hadoop集群所必须遵循的步骤: 3.首先,您需要在系统上安装Java,并且必须将JAVA_HOME添加到您的环境变量中。您可以从Oracle website下载Java并进行安装。

  1. Apache website下载Hadoop二进制文件并解压缩。
  2. 请注意,文件夹名称中不能有空格,否则可能会遇到问题。
  3. 接下来,您必须将Java和Hadoop home和bin文件夹添加到您的环境变量中。只需打开开始菜单并键入“环境变量”,然后从控制面板中打开“编辑环境变量”窗口即可。
  4. 添加
HADOOP_HOME=”root of your hadoop extracted folder\hadoop-2.9.2″
HADOOP_BIN=”root of hadoop extracted folder\hadoop-2.9.2\bin”
JAVA_HOME=<Root of your JDK installation>”
  1. 编辑“路径”环境变量,然后将%JAVA_HOME%,%HADOOP_HOME%,%HADOOP_BIN%,%HADOOP_HOME%/ sbin分别添加到PATH。
  2. 您可以通过打开cmd并输入以下内容来验证添加内容:
echo %HADOOP_HOME%
echo %HADOOP_BIN%
echo %PATH%

配置HADOOP: 10.打开“您的hadoop root \ hadoop-2.9.2 \ etc \ hadoop \ hadoop-env.cmd”,并将以下行添加到文件底部:

set HADOOP_PREFIX=%HADOOP_HOME%
set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop
set YARN_CONF_DIR=%HADOOP_CONF_DIR%
set PATH=%PATH%;%HADOOP_PREFIX%\bin

11。打开“您的hadoop-root \ hadoop-2.9.2 \ etc \ hadoop \ hdfs-site.xml”并添加以下内容:

<property>
<name>dfs.name.dir</name>
<value>your desired address</value>
</property>

<property>
<name>dfs.data.dir</name>
<value>your desired address</value>
</property>

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>false</value>
</property>

<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>

<property>
<name>dfs.namenode.http-address</name>
<value>hadoopMaster:50070</value>
<description>Your NameNode hostname for http access.</description>
</property>

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoopMaster:50090</value>
<description>Your Secondary NameNode hostname for http access.</description>
</property>
  1. 编辑您的core-site.xml并添加:
<property>
<name>fs.default.name</name>
<value>hdfs://hadoopMaster:9000</value>
</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value>your-temp-directory</value>
<description>A base for other temporary directories.</description>
</property>
  1. 打开“ hadoop \ hadoop-2.9.2 \ etc \ hadoop \ mapred-site.xml的根目录”,然后在标签内添加以下内容。如果看不到mapred-site.xml,请打开mapred-site.xml.template文件并将其重命名为mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>hadoopMaster:9001</value>
</property>

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

14。编辑您的yarn-site.xml并添加:

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
<description>Long running service which executes on Node Manager(s) and provides MapReduce Sort and Shuffle functionality.</description>
</property>

<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>Enable log aggregation so application logs are moved onto hdfs and are viewable via web ui after the application completed. The default location on hdfs is '/log' and can be changed via yarn.nodemanager.remote-app-log-dir property</description>
</property>

<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoopMaster:8030</value>
</property>

<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoopMaster:8031</value>
</property>

<property>
<name>yarn.resourcemanager.address</name>
<value>hadoopMaster:8032</value>
</property>

<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoopMaster:8033</value>
</property>

<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoopMaster:8088</value>
</property>
  1. 在“ root-hadoop-directory / hadoop / bin”的从属文件中添加
hadoopSlave
  1. 也在从属节点上执行这些步骤。
  2. 打开cmd和cd到hadoop目录中的sbin文件夹。 18.格式化您的nameNode
hadoop namenode -format

19。运行以下命令:

start-dfs.sh
  1. 然后运行:
start-yarn.sh

答案 1 :(得分:1)

在反复试验之后,以下内容对我起作用。

  1. 与@AbsoluteBeginner先前的回答进行相同的配置。

  2. 在所有计算机上禁用Windows防火墙(我认为您可以将其保持打开状态,并且只是在弄乱规则,但这就是您要找出的原因)

  3. hdfs namenode-格式化所有节点(主节点和从节点)

  4. 确保所有3个节点中的datanode文件夹均为空(只是shift + del)

  5. 主节点中的
  6. 运行start-all.cmd。以下所有应该出现。 50436 NameNode 54696节点管理器 54744数据节点 60028每秒 7340 ResourceManager

  7. 从节点中的
  8. 运行start-all.cmd。以下所有应该出现 6116数据节点 2408秒 3208 NodeManager

请注意未出现nameode和资源管理器的原因,因为它们正在主节点上运行并且已经占用了端口,并且您只需要运行主resourcemanger和名称节点

请注意,如果您看到了Linux的多集群教程,则执行jps时,主节点也会显示SeceondryNameNode。不太确定为什么它不出现在Windows中。

  1. 转到master:50070,然后导航到数据节点,您应该会看到类似以下内容 Datanode
  1. 转到master:8088,然后导航至Node,您应该会看到类似以下内容 resourceManager