我们正在分享有关在基于Linux的机器(多节点)上安装Apache Hadoop的经验。 在这里,我们还将分享我们在各种故障排除方面的经验,并在将来进行更新。

用户创建和其他配置步骤–

  • 我们首先在每个集群中添加一个专用的Hadoop系统用户。
$ sudo addgroup hadoop
$ sudo adduser –ingroup hadoop hduser
  • 接下来,我们在所有群集上配置SSH(安全外壳)以启用安全的数据通信。
user@node1:~$ su – hduser
hduser@node1:~$ ssh-keygen -t rsa -P “”

输出将类似于以下内容:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa):
Created directory '/home/hduser/.ssh'.
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
The key fingerprint is:
9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hduser@ubuntu
.....
  • 接下来,我们需要使用此新创建的密钥启用对本地计算机的SSH访问:
hduser@node1:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

在所有群集节点中重复上述步骤,并通过执行以下语句进行测试

hduser@node1:~$ ssh localhost

还需要执行此步骤,以将本地计算机的主机密钥指纹保存到hduser用户的known_hosts文件中。

接下来,我们需要编辑/ etc / hosts文件,在其中将集群中每个系统的IP和名称放入其中。

在我们的方案中,我们有一个主机(IP 192.168.0.100)和一个从机(IP 192.168.0.101)

$ sudo vi /etc/hosts

然后将这些值作为键值对放入主机文件中。

192.168.0.100 master
192.168.0.101 slave
  • 提供SSH访问

主节点上的hduser用户必须能够连接

  1. 在这种情况下,通过ssh master可以将其自身的用户帐户转移到master上,而不必是ssh localhost。
  2. 通过无密码SSH登录到从设备的hduser帐户。

因此,我们将hduser @ master的SSH公钥分配给它的所有从属(在我们的情况下,我们只有一个从属。如果您有更多从属,请执行以下语句更改计算机名称,即slave,slave1,slave2)。

hduser@master:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@slave

尝试通过将主机连接到主机,将主机连接到从机,然后检查是否一切正常。

配置Hadoop

  • 让我们编辑conf / masters (仅在masters节点中)

然后我们在文件中输入master

为此,我们告诉Hadoop在此计算机的多节点集群中启动Namenode和secondary NameNodes

主NameNodeJobTracker将始终在我们运行bin / start-dfs.shbin / start-mapred.sh的计算机上

  • 现在让我们使用以下命令编辑conf / slaves (仅在masters节点中)
master
slave

这意味着,我们也尝试在主机上运行datanode进程-namenode也在其中运行。 如果我们拥有更多的机器作为数据节点,我们可以让主服务器充当从服务器。

如果我们有更多的奴隶,那么每行添加一个主机,如下所示:

master
slave
slave2
slave3

等等…。

现在,让我们编辑两个重要文件( 集群的所有节点中):

  1. conf / core-site.xml
  2. conf / core-hdfs.xml

1)conf / core-site.xml

我们必须更改指定NameNode主机和端口的fs.default.parameter 。 (在我们的例子中,这是主机)

<property><name>fs.default.name</name>
<value>hdfs://master:54310</value>…..[Other XML Values]</property>

创建一个目录,Hadoop将在其中存储其数据–

$ mkdir /app/hadoop

我们必须确保该目录可由任何用户写入:

$ chmod 777 /app/hadoop

再次修改core-site.xml以添加以下属性:

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop</value>
</property>

2)conf / core-hdfs.xml

我们必须更改dfs.replication参数,该参数指定默认的块复制。 它定义了单个文件可用之前应复制到多少台计算机。 如果将其设置为大于可用从属节点数(更确切地说是DataNode数)的值,则将开始在日志中看到很多“(找到零目标,forbidden1.size = 1)”类型错误文件。

dfs.replication的默认值为3。但是,由于(在我们的方案中)只有两个节点可用,因此我们将dfs.replication设置为2。

<property>
<name>dfs.replication</name>
<value>2</value>
…..[Other XML Values]
</property>
  • 让我们通过NameNode 格式化 HDFS文件系统。

master上运行以下命令

bin/hadoop namenode -format
  • 让我们启动多节点集群:

运行命令:(在本例中,我们将在名为master的机器上运行)

bin/start-dfs.sh

检查Hadoop状态–

一切开始后,在所有节点上运行jps命令以查看一切运行良好与否。

在主节点上,所需的输出将是–

$ jps14799 NameNode
15314 Jps
14880 DataNode
14977 SecondaryNameNode

在从站中:

$ jps
15314 Jps
14880 DataNode

当然,进程ID会因计算机而异。

故障排除

Datanode可能无法在我们所有的节点中启动。 在这一点上,如果我们看到

logs/hadoop-hduser-datanode-.log

在受影响的节点上,以下情况除外:

java.io.IOException: Incompatible namespaceIDs

在这种情况下,我们需要执行以下操作–

  1. 停止整个集群,即MapReduce和HDFS层。
  2. 删除有问题的DataNode上的数据目录:该目录由conf / hdfs-site.xml中的 dfs.data.dir指定 在我们的例子中,相关目录是/ app / hadoop / tmp / dfs / data
  3. 重新格式化NameNode。 在格式化过程中,所有HDFS数据都会丢失。
  4. 重新启动集群。

要么

我们可以手动更新有问题的DataNode的namespaceID:

  1. 停止有问题的DataNode。
  2. 编辑$ {dfs.data.dir} / current / VERSION中的namespaceID的值,以匹配$ {dfs.name.dir} / current / VERSION中当前NameNode的对应值。
  3. 重新启动固定的DataNode。

Apache Hadoop(多节点群集)中运行Map-Reduce作业中 ,我们将按照apache hadoop示例分享有关Map Reduce Job Running的经验。

资源资源

  • http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
  • http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
  • http://hadoop.apache.org/docs/current/
参考:通过Phlox Blog博客的JCG合作伙伴 Piyas De 设置Apache Hadoop Multi-Node Cluster 。

翻译自: https://www.javacodegeeks.com/2013/06/setting-up-apache-hadoop-multi-node-cluster.html

设置Apache Hadoop多节点集群相关推荐

  1. hadoop 多节点集群_设置Apache Hadoop多节点集群

    hadoop 多节点集群 我们正在分享有关在基于Linux的机器(多节点)上安装Apache Hadoop的经验. 在这里,我们还将分享我们在各种故障排除方面的经验,并在将来进行更新. 用户创建和其他 ...

  2. 【Docker系列】Docker Swarm 多节点集群

    三节点集群搭建 创建3节点swarm cluster的方法 https://labs.play-with-docker.com/ play with docker 网站, 优点是快速方便,缺点是环境不 ...

  3. 搭建Kubernetes多节点集群

    文章目录 1. 实验环境 2. 系统网络配置 3. 修改节点Hostname 4. 关闭防火墙.SeLinux.Swap分区 5. 设置docker和k8s的yum源 5.1 docker源的配置 5 ...

  4. kubeadm安装K8S单master双节点集群

    宿主机: master:172.16.40.97 node1:172.16.40.98 node2:172.16.40.99 # 一.k8s初始化环境:(三台宿主机) 关闭防火墙和selinux sy ...

  5. Ambari安装之部署单节点集群

    前期博客 大数据领域两大最主流集群管理工具Ambari和Cloudera Manger Ambari架构原理 Ambari安装之Ambari安装前准备(CentOS6.5)(一) Ambari安装之部 ...

  6. Vanish搭建CDN的节点集群

    前言: 在不同地域的用户访问网站的相应速度存在差异,为了提高用户访问的相应 速度,优化现有internet中的信息流动,需要在用户和服务器之间加入中间层CDN, 是用户能以最快的速度从最近的地方获得所 ...

  7. 【065】Spring Cloud服务注册中心双节点集群,使用Eureka实现,以IP方式配置,基于Spring Cloud的Camden SR5版本

    Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现.Eureka 采用了 C-S 的设计架构.Eureka Server 作为服务注册功能的服务器,它 ...

  8. k8s安装3节点集群Fate v1.8.0

    采用k8s,而非minikube, 在3个centos系统的节点上安装fate集群. 本人安装这个v1.8.0版本后,能登陆fateboard,但无法传输数据,问题无法解决.于是选择安装v1.7.2版 ...

  9. 利用kubeadm安装kubernetes1.21.2单节点集群

    利用kubeadm安装kubernetes集群 环境: 1.关闭防火墙, 2.配置好/etc/hosts k8s-master:192.168.248.128 k8s-node01: 192.168. ...

最新文章

  1. Struts2 - Check Login Interceptor
  2. Clang-Format: Visual Studio Style
  3. 目标检测的图像特征提取之(一)Hog特征提取
  4. BZOJ2759 一个动态树好题
  5. jQuery 表格响应式插件 FooTable
  6. TensorFlow神经网络(三)神经网络优化
  7. linux 无法启动matlab,在具有 jre 1.7.0 _05的科学linux上,无法启动 MATLAB gui ( 指南)_matlab_开发99编程知识库...
  8. .NET程序员面试指南:设计窗口程序演示八皇后问题
  9. CRC全套~~~ 转载
  10. 简单的TCP回射服务
  11. 进阶 | 产品失效模式与效益分析(DFMEA)的实际应用
  12. mysql字符串拼接有空值_mysql字符串如何拼接并设置null值 mysql字符串拼接并设置null值实例方法...
  13. 新浪免费企业邮箱Foxmail客户端设…
  14. Python3 计算空气质量指数AQI
  15. php中md5加密函数怎么用,PHP加密函数—md5()函数加密实例用法
  16. sigprocmask , sigpending 和 sigsuspend函数
  17. E0864vector不是模板
  18. iost主网同步手记
  19. 「数据库选型」抛弃MongoDB,拥抱PostgreSQL,工作更轻松
  20. Spring Boot文件下载断点续传

热门文章

  1. c语言程序为什么运行一半就自动关闭了,C语言为什么程序运行一半就出现停止工作...
  2. review_core_basic_java(1)java程序设计概述
  3. java安全——加密
  4. 如何导入数据模板到MVC
  5. spring 注释_Spring@懒惰注释
  6. Spring Security并发会话控制示例教程–如何限制Java JEE Web应用程序中的用户会话数...
  7. java登录界面命令_Java命令行界面(第18部分):JCLAP
  8. aws实例启动失败_AWS:启动安装了APOC的Neo4j实例
  9. java事件处理过程分布写_Java 9中的进程处理
  10. java 拼图_拼图推迟将Java 9的发布日期推迟到2017年