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

hadoop 多节点集群

我们正在分享有关在基于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和辅助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

hadoop 多节点集群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348014.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 获取当前目录名称,PHP获取当前执行php文件名的代码

今天写表白墙时候的导航判断遇到的这个问题。我的解决思路是这样&#xff1a;判断当前的php文件名来确定导航条的哪块高亮。那php如何获取当前的url文件名呢&#xff1f;我是这样处理的 :shock:教程首先肯定是要获取当前页面URL的&#xff0c;在这里我们使用php的$_SERVER[PHP_…

在Java中解析JSON时如何忽略未知属性– Jackson @JsonIgnoreProperties注释示例

使用Jackson API在Java中解析JSON时的常见问题之一是&#xff0c;当您的JSON包含未知属性&#xff08;即您的Java类没有对应于所有JSON属性的所有字段&#xff09;时&#xff0c;该操作将失败。 例如&#xff0c;如果您正在使用REST Web服务中的JSON&#xff0c;并且明天他们在…

php界面设置编码格式,php设置编码格式的方法

php设置编码格式的方法发布时间&#xff1a;2020-08-15 11:02:56来源&#xff1a;亿速云阅读&#xff1a;78作者&#xff1a;小新这篇文章主要介绍php设置编码格式的方法&#xff0c;文中介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们一定要看完&…

php文件显示不完整,github文件显示不全

github仓库里面有的文件显示不全&#xff0c;具体看这里&#xff0c;在编辑文件时就能看到全部内容看了stackoverflow上类似的问题&#xff1a;Full file not displaying on GitHub?&#xff0c;然后又看了Dealing with line endings&#xff0c;还是没有解决。望解答&#xf…

单元测试 问题描述_单元测试技巧:创建描述性测试

单元测试 问题描述您的单元测试应尽可能具有描述性。 他们给您的反馈应该非常清楚&#xff0c;您甚至不必启动调试器&#xff0c;并一步一步地检查代码以检查局部变量。 为什么&#xff1f; 因为那需要时间&#xff0c;而且我们很懒&#xff0c;对吗&#xff1f; 为此&#xff…

java ftp获取文件夹大小,java 用FTPClient 下载文件时不显示总大小?解决方案

java 用FTPClient 下载文件时不显示总大小&#xff1f;FTPClient ftp new FTPClient();ftp.setControlEncoding("utf-8");OutputStream outputStream null;try {int reply;// 连接FTP服务器// 如果采用默认端口&#xff0c;可以使用ftp.connect(url)的方式直接连接…

php中数组生成下拉选项,php利用数组填充下拉列表框

这篇文章主要介绍了php使用数组填充下拉列表框的方法,涉及php操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下本文实例讲述了php使用数组填充下拉列表框的方法。具体实现方法如下&#xff1a;<?php $data array((object)array("titulo">"For…

同时使用传入和传出连接时,相互TLS身份验证存在Java问题

在大多数企业环境中&#xff0c;在应用程序之间的连接中使用某种形式的安全通信&#xff08;例如TLS或SSL&#xff09;。 在某些环境中&#xff0c; 相互&#xff08;双向&#xff09;身份验证也是一项非功能性要求。 有时将其称为双向SSL或双向TLS身份验证。 因此&#xff0c;…

matlab小波脊线,小波脊线提取,模极大值法。运行的结果不太对,代码有些地方我也没完全看懂...

本帖最后由 1393107100 于 2019-5-1 11:10 编辑clear,clcclose all%%%%%% 小波变换 %%%%%%%%%%%%%%%%fs1024;t1/fs:1/fs:1;f1100;f2200;f3300;scos(2*pi*f1*t.*(t>0&t<0.3))2*cos(2*pi*f2*t.*(t>0.3&t<0.8))3*sin(2*pi*f3*t.*(t>0.8&t<1));%sc…

php json追加500错误,在composer.json中添加了一个git地址;composer update 报错

在composer.json中添加了一个git地址&#xff1b;composer update 报错&#xff0c;不知道是什么原因导致的&#xff0c;如图&#xff1a;问题补充&#xff1a;在BAE包里面添加composer.json 后 重新composer updateYour requirements could not be resolved to an installable…

java 解析gson_使用Java和Google GSON解析ESPN API

java 解析gson在我的第一篇文章中&#xff0c;我将解释如何解析ESPN API。 可以在http://developer.espn.com/docs上找到API文档。 首先&#xff0c;您需要请求一个API密钥&#xff0c;然后您可以开始查询REST API以检索JSON响应。 在下面的示例中&#xff0c;我将简单查询在英…

matlab曲线拟合 最低点,Matlab曲线拟合 最小二乘法 polyfit【转】

曲线拟合已知离散点上的数据集 &#xff0c;即已知在点集 上的函数值 &#xff0c;构造一个解析函数(其图形为一曲线)使 在原离散点 上尽可能接近给定的值&#xff0c;这一过程称为曲线拟合。最常用的曲线拟合方法是最小二乘法&#xff0c;该方法是寻找函数 使得 最小。MATLAB函…

多元统计分析matlab,MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法...

MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法&#xff1a;1.层次聚类hierarchical clustering2.k-means聚类这里用最简单的实例说明以下层次聚类原理和应用发法。层次聚类是基于距离的聚类方法&#xff0c;MATLAB中通过pdist、linkage、dendrogram、cluster等…

如何在线程“ main”中修复异常java.lang.NoClassDefFoundError:Java中的org / slf4j / LoggerFactory...

此错误表示您的代码或您在应用程序中使用的任何外部库都在使用SLF4J库 &#xff08;一个开放源代码日志记录库&#xff09;&#xff0c;但无法找到所需的JAR文件&#xff0c;例如slf4j-api-1.7.2.jar因此它是在线程“ main” java.lang.NoClassDefFoundError&#xff1a; org/s…

sin查找表 matlab,利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨

1.使用matlab制作.coe文件查找表的构造构造256点的正余弦表exp(-j*2*pi*(0:255)/256)&#xff0c;分别得到 cos和sin的查找表matlab代码: 求sinfid fopen(sin.txt,a );str1 MEMORY_INITIALIZATION_RADIX10;;str2 MEMORY_INITIALIZATION_VECTOR;fprintf(fid,\t%s\n \t%s\n, s…

lucene使用3.0.3_使用Apache Lucene 4.3轻松进行搜索

lucene使用3.0.3Lucene是用Java编写的全文搜索引擎&#xff0c;可以为任何应用程序提供强大的搜索功能。 Lucene的核心是基于文件的全文本索引。 Lucene提供API创建该索引&#xff0c;然后向该索引添加和删除内容。 此外&#xff0c;它允许使用功能强大的搜索算法从该索引中搜索…

Java124 0,AcWing 124. 数的进制转换java

package acwing寒假每日一题;import java.io.BufferedInputStream;import java.util.*;public class TransNumber {public static void main(String[] args) {Scanner in new Scanner(new BufferedInputStream(System.in));//n次操作int n in.nextInt();//输入字符串&#xf…

php提取pdf首页图片,pdf图片怎么提取

pdf图片的提取方法&#xff1a;首先用极速PDF阅读器打开文档&#xff1b;然后在图片处单击鼠标右键并选择“复制图片”&#xff0c;这时就可以粘贴发送了。本文操作环境&#xff1a;Windows7系统&#xff0c;Microsoft Office PowerPoint2020版本&#xff0c;Dell G3电脑。pdf图…

dlopen linux 实例_Linux静态库和动态库

库从本质上来说是一种可执行代码的二进制格式&#xff0c;可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库这类库的名字一般是libxxx.a&#xff1b;利用静态函数库编译成的文件比较大&#xff0c;因为整个 函数库的所有数据都会被整合进目标…

Neo4j:Cypher – Neo.ClientError.Statement.TypeError:不知道如何添加Double和String

我最近将支持Neo4j的应用程序从Neo4j 3.2升级到Neo4j 3.3&#xff0c;发现围绕类型强制的行为发生了有趣的变化&#xff0c;导致我的应用程序抛出了很多错误。 在Neo4j 3.2和更早版本中&#xff0c;如果将String添加到Double&#xff0c;它将把Double强制转换为String并连接值…