前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

作者头像
白石
发布于 2019-08-23 02:18:29
发布于 2019-08-23 02:18:29
50800
代码可运行
举报
文章被收录于专栏:白石白石
运行总次数:0
代码可运行

(WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

为了部署HA集群,应该准备以下事情:

  • namenode服务器: 运行namenode的服务器应该有相同的硬件配置.
  • journalnode服务器:运行的journalnode进程非常轻量,可以部署在其他的服务器上.注意:必须允许至少3个节点.当然可以运行更多,但是必须是奇数个,如3,5,7,9个等等.当运行N个节点时,系统可以容忍至少(N-1)/2个节点失败而不影响正常运行. 在HA集群中,standby状态的namenode可以完成checkpoint操作,因此没必要配置Secondary namenode,CheckpointNode,BackupNode.如果真的配置了,还会报错.

[X] 安装环境:

  • 系统版本:CentOS 6.3 x86_64
  • JAVA版本:JDK-1.7.0_25
  • hadoop-2.2.0-src.tar.gz
  • 服务器列表:

192.168.1.84 hadoop84 #namenode1,resourcemanager

192.168.1.85 hadoop85 #namenode2,journalnode1,datanode1,nodemanager1

192.168.1.86 hadoop86 #journalnode2,datanode2,nodemanager2

192.168.1.87 hadoop87 #journalnode3,datanode3,nodemanager3

  • JDK

建议安装Sun的JDK1.7版本! 安装完毕并配置java环境变量,在/etc/profile末尾添加如下代码: export JAVA_HOME=/usr/java/default export PATH=$JAVA_HOME/bin:$PATH 保存退出即可,然后执行source /etc/profile生效.在命令行执行java -version 如下代表JAVA安装成功.

  • ssh

需要配置各个节点的免密码登录! 首先在自己机器上使用ssh-keygen -t rsa 会要求输入密码(必须为空),回车几次,然后会在HOME目录下生成.ssh文件夹, 里面有私钥和公钥,公钥为id_rsa.pub,(现在你需要将你的公钥拷贝到服务器上,如果你的系统有ssh-copy-id命令,拷贝会很简单:$ ssh-copy-id 用户名@服务器名) 否则,你需要手动将你的私钥拷贝的服务器上的~/.ssh/authorized_keys文件中!

  • NTP

集群的时钟要保证基本的一致.稍有不一致是可以容忍的,但是很大的不一致会 造成奇怪的行为. 运行 NTP 或者其他什么东西来同步你的时间. 如果你查询的时候或者是遇到奇怪的故障,可以检查一下系统时间是否正确!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "server 192.168.0.2" >> /etc/ntp.conf  
chkconfig ntpd on  
service ntpd restart  
ntpq -p  
  • ulimit和nproc

Hdaoop会在同一时间使用很多的文件句柄.大多数linux系统使用的默认值1024是不能满足的,修改/etc/security/limits.conf文件为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
      *               soft    nproc   16384
      *               hard    nproc   16384  
      *               soft    nofile  65536  
      *               hard    nofile  65536  

  • 修改 192.168.1.84,192.168.1.85,192.168.1.86,192.168.1.87etc/hosts文件 在文件最后添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
192.168.1.84 hadoop84
192.168.1.85 hadoop85
192.168.1.86 hadoop86
192.168.1.87 hadoop87

[X] 编译hadoop

在hadoop84上操作

[1] 拷贝hadoop-2.2.0-src.tar.gz到hadoop84的/opt目录下,然后执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt
tar zxvf ./hadoop-2.2.0-src.tar.gz

[2] YUM安装依赖库:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install autoconfautomake libtool cmake zlib-devel
yum install ncurses-devel
yum install openssl-devel
yum install gcc*

[3] 下载并安装配置:protobuf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /tmp
wget http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
tar -zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make
make install 
ldconfig
rm -rf /tmp/protobuf-2.5.0/

[4] 下载并配置:findbugs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://sourceforge.net/projects/findbugs/files/findbugs/2.0.2/findbugs-2.0.2.tar.gz/download
解压:tar -zxvf ./findbugs-2.0.2.tar.gz
配置环境变量FINDBUGS_HOME: export FINDBUGS_HOME=/path to your extract directory  #例如: export FINDBUGS_HOME=/opt/findbugs-2.0.2

[5] 构建二进制版Hadoop

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
编辑`/opt/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml`文件,<dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty</artifactId>
      <scope>test</scope>
    </dependency>
后面,添加上
    <dependency>
       <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <scope>test</scope>
    </dependency><artifactId>maven-site-plugin</artifactId>
后面,添加一行:<version>3.3</version>

编辑`/opt/hadoop-2.2.0-src/pom.xml`文件,<artifactId>maven-site-plugin</artifactId>后面的:<version>3.0</version>改成:<version>3.3</version>

mvn package -Pdist,native,docs -DskipTests -Dtar
生成好的文件是:/opt/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0.tar.gz

注意: 不要使用最新的Maven3.1.x和Maven3.2.x,与Maven3.0.x存在兼容性问题,所以老是出现java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之类的错误.


[X] 安装Hadoop

[1] 解压

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /opt/hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0.tar.gz /opt
cd /opt
tar -zxvf ./hadoop-2.2.0.tar.gz
mv hadoop-2.2.0  /opt/hadoop

注意: 先在namenode服务器上都安装hadoop版本即可,datanode先不用安装,待会修改完配置后统一安装datanode!

[2] 配置环境变量

修改/opt/hadoop/libexec/hadoop-config.sh,在最前面添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#->@wjw_add
export JAVA_HOME=/usr/java/default
export HADOOP_HOME=/opt/hadoop
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
export JAVA_LIBRARY_PATH=${HADOOP_HOME}/lib/native
export HADOOP_LOG_DIR=/opt/hadoop_data/logs
export YARN_LOG_DIR=${HADOOP_LOG_DIR}
#<-@wjw_add

hadoop-config.sh会被其他所有的脚本来调用,可以把环境变量,JVM参数等都配置在这里!

[X] 配置Hadoop

先在hdaoop84上配置,我们需要修改如下几个地方:

[1] 修改/opt/hadoop/etc/hadoop/core-site.xml,内容为如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://hadoop84:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop_data/tmp</value>
  </property>
</configuration>

fs.default.name 因为我们会启动2个namenode,每个namenode的位置不一样,那么切换后,用户也要修改代码,很麻烦, 因此fs.default.name使用一个逻辑路径,用户就可以不必担心namenode切换带来的路径不一致问题了. hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它.如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中.

[2] 修改/opt/hadoop/etc/hadoop/hdfs-site.xml,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/hadoop_data/namenode</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/hadoop_data/datanode</value>
  </property>  
  <property>
    <name>dfs.nameservices</name>
    <value>cluster1</value>
  </property>
  <property>
    <name>dfs.ha.namenodes.cluster1</name>
    <value>hadoop84,hadoop85</value>
  </property>
  <property>
    <name>dfs.namenode.rpc-address.cluster1.hadoop84</name>
    <value>hadoop84:9000</value>
  </property>
  <property>
    <name>dfs.namenode.rpc-address.cluster1.hadoop85</name>
    <value>hadoop85:9000</value>
  </property>
  <property>
    <name>dfs.namenode.http-address.cluster1.hadoop84</name>
    <value>hadoop84:50070</value>
  </property>
  <property>
    <name>dfs.namenode.http-address.cluster1.hadoop85</name>
    <value>hadoop85:50070</value>
  </property>
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://hadoop85:8485;hadoop86:8485;hadoop87:8485/cluster1</value>
  </property>
  <property>
    <name>dfs.client.failover.proxy.provider.cluster1</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
  <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
  </property>
  <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
  </property>
  <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/opt/hadoop_data/journal</value>
  </property>
</configuration>

dfs.replication HDFS文件的副本数.如果你只有3个datanode,但是你却指定副本数为4,是不会生效的,因为每个datanode上只能存放一个副本. dfs.namenode.name.dir namenode的数据的存放位置 dfs.datanode.data.dir namenode的数据的存放位置 dfs.nameservices 命名空间的逻辑名称.如果使用HDFS Federation,可以配置多个命名空间的名称,使用逗号分开即可. dfs.ha.namenodes.[nameservice ID] 命名空间中所有namenode的唯一标示名称.可以配置多个,使用逗号分隔.该名称是可以让datanode知道每个集群的所有namenode.当前,每个集群最多只能配置两个namenode. dfs.namenode.rpc-address.[nameservice ID].[namenode ID] 每个namenode监听的RPC地址 dfs.namenode.http-address.[nameservice ID].[namenode ID] 每个namenode监听的http地址 dfs.namenode.shared.edits.dir 这是namenode读写JNS组的uri.通过这个uri,namenodes可以读写edit log内容.URI的格式"qjournal://host1:port1;host2:port2;host3:port3/journalId". 这里的host1,host2,host3指的是Journal Node的地址,这里必须是奇数个,至少3个;其中journalId是集群的唯一标识符,对于多个联邦命名空间,也使用同一个journalId. dfs.client.failover.proxy.provider.[nameservice ID] 这里配置HDFS客户端连接到Active namenode的一个java类. dfs.ha.fencing.methods 配置active namenode出错时的处理类.当active namenode出错时,一般需要关闭该进程.处理方式可以是ssh也可以是shell.推荐使用ssh! fs.journalnode.edits.dir 这是journalnode进程保持逻辑状态的路径.这是在linux服务器文件的绝对路径.

[3] 修改/opt/hadoop/etc/hadoop/yarn-site.xml,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop84</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
</configuration>

yarn.resourcemanager.hostname 指的是运行ResourceManager机器所在的节点. yarn.nodemanager.aux-services 在hadoop2.2.0版本中是mapreduce_shuffle,一定要看清楚.

[4] 修改/opt/hadoop/etc/hadoop/mapred-site.xml.template,内容如下:

先执行:cp /opt/hadoop/etc/hadoop/mapred-site.xml.template /opt/hadoop/etc/hadoop/mapred-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

mapreduce.framework.name 指的是使用yarn运行mapreduce程序.

[5] 修改/opt/hadoop/etc/hadoop/slaves,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop85
hadoop86
hadoop87

表示以上三个节点作为datanode和nodemanager节点.

[6] 把配置好的hadoop复制到其他节点:

执行如下操作即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop84
ssh hadoop85
ssh hadoop86
ssh hadoop87
scp -r /opt/hadoop/ root@hadoop85:/opt/
scp -r /opt/hadoop/ root@hadoop86:/opt/
scp -r /opt/hadoop/ root@hadoop87:/opt/

自此整个集群基本搭建完毕,接下来就是启动hadoop集群了.

[X] 执行命令启动HDFS和MapReduce集群:

以下命令严格注意执行顺序,不能颠倒!

[1] 创建目录:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop84 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'
ssh hadoop85 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'
ssh hadoop86 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'
ssh hadoop87 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'

[2] 启动JournalNode集群:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop85 '/opt/hadoop/sbin/hadoop-daemon.sh start journalnode'
ssh hadoop86 '/opt/hadoop/sbin/hadoop-daemon.sh start journalnode'
ssh hadoop87 '/opt/hadoop/sbin/hadoop-daemon.sh start journalnode'

[3] 格式化第1个NameNode:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop84 '/opt/hadoop/bin/hdfs namenode -format -clusterId cluster1'

[4] 启动第1个NameNode:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop84 '/opt/hadoop/sbin/hadoop-daemon.sh start namenode'

[5] 格式化第2个NameNode:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop85 '/opt/hadoop/bin/hdfs namenode -bootstrapStandby'

[6] 启动第2个NameNode:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop85 '/opt/hadoop/sbin/hadoop-daemon.sh start namenode'

这时候,使用浏览器访问 http://hadoop84:50070http://hadoop85:50070 如果能够看到两个页面,证明NameNode启动成功了.这时,两个NameNode的状态都是standby.

[7] 转换active:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop84 '/opt/hadoop/bin/hdfs haadmin -failover --forceactive hadoop85 hadoop84'

再使用浏览器访问 http://hadoop84:50070http://hadoop85:50070 会发现hadoop84节点变为active,hadoop85还是standby.

[8] 启动DataNodes:

在hadoop84执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop84 '/opt/hadoop/sbin/hadoop-daemons.sh start datanode'

会启动3个DataNode节点. 这时候HA集群就启动了.

备注:

你如果想实验一下NameNode切换,执行命令hdfs haadmin -failover --forceactive hadoop84 hadoop85 这时候观察hadoop84和hadoop85的状态,就会发现,已经改变了. 如果向上传数据,还需要修改core-site.xml中的fs.default.name的值,改为hdfs://hadoop85:9000 才行.

[9] 启动MapReduce:

在hadoop84执行命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh hadoop84 '/opt/hadoop/sbin/start-yarn.sh'

用浏览器访问 http://hbase84:8088


[X] 附录:

[X] HA的问题:

大家都知道在hadoop2中对HDFS的改进很大,实现了NameNode的HA; 也增加了ResourceManager.但是ResourceManager也可以实现HA. 你没看错,确实是ResourceManager的HA.注意是在Apache Hadoop 2.4.1版本中开始加入的,可不是任意一个版本.

[X] hadoop2的HA配置一键运行脚本startall.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/sh

#synchronize all config files
ssh hadoop84 'scp /opt/hadoop/etc/hadoop/*  hadoop85:/opt/hadoop/etc/hadoop'
ssh hadoop84 'scp /opt/hadoop/etc/hadoop/*  hadoop86:/opt/hadoop/etc/hadoop'
ssh hadoop84 'scp /opt/hadoop/etc/hadoop/*  hadoop87:/opt/hadoop/etc/hadoop'
ssh hadoop84 'scp /opt/hadoop/libexec/*  hadoop85:/opt/hadoop/libexec'
ssh hadoop84 'scp /opt/hadoop/libexec/*  hadoop86:/opt/hadoop/libexec'
ssh hadoop84 'scp /opt/hadoop/libexec/*  hadoop87:/opt/hadoop/libexec'

#stop all daemons
ssh hadoop84 '/opt/hadoop/sbin/stop-all.sh'

#remove all files
ssh hadoop84 'rm -rf /opt/hadoop_data/'
ssh hadoop85 'rm -rf /opt/hadoop_data/'
ssh hadoop86 'rm -rf /opt/hadoop_data/'
ssh hadoop87 'rm -rf /opt/hadoop_data/'

ssh hadoop84 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'
ssh hadoop85 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'
ssh hadoop86 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'
ssh hadoop87 'mkdir -p /opt/hadoop_data/tmp /opt/hadoop_data/namenode /opt/hadoop_data/datanode /opt/hadoop_data/journal'

#start journalnodes cluster
ssh hadoop85 '/opt/hadoop/sbin/hadoop-daemon.sh start journalnode'
ssh hadoop86 '/opt/hadoop/sbin/hadoop-daemon.sh start journalnode'
ssh hadoop87 '/opt/hadoop/sbin/hadoop-daemon.sh start journalnode'

#format one namenode
ssh hadoop84 '/opt/hadoop/bin/hdfs namenode -format -clusterId cluster1'
ssh hadoop84 '/opt/hadoop/sbin/hadoop-daemon.sh start namenode'

#format another namenode
ssh hadoop85 '/opt/hadoop/bin/hdfs namenode -bootstrapStandby'
sleep 10
ssh hadoop85 '/opt/hadoop/sbin/hadoop-daemon.sh start namenode'
sleep 10

#trigger hadoop84 active
ssh hadoop84 '/opt/hadoop/bin/hdfs haadmin -failover --forceactive hadoop85 hadoop84'

#start all datanodes
ssh hadoop84 '/opt/hadoop/sbin/hadoop-daemons.sh start datanode'

#start MapReduce
sleep 10
ssh hadoop84 '/opt/hadoop/sbin/start-yarn.sh'
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
hadoop搭建完全分布式集群
后面的启动步骤可以用一步来代替,进入hadoop安装目录的sbin目录,执行:start-dfs.sh 。但建议还是按部就班来执行,比较可靠。
许喜朝
2020/10/27
4970
Hadoop完全分布式搭建部署
1)在各个JournalNode节点上,输入以下命令启动journalnode服务:(前提zookeeper集群已启动)
星哥玩云
2022/08/08
4880
Hadoop完全分布式搭建部署
Hadoop框架:HDFS高可用环境配置
在单点或者少数节点故障的情况下,集群还可以正常的提供服务,HDFS高可用机制可以通过配置Active/Standby两个NameNodes节点实现在集群中对NameNode的热备来消除单节点故障问题,如果单个节点出现故障,可通过该方式将NameNode快速切换到另外一个节点上。
知了一笑
2020/11/02
4590
Hadoop框架:HDFS高可用环境配置
Hadoop完全分布式搭建
一、介绍 Hadoop2.0中,2个NameNode的数据其实是实时共享的。新HDFS采用了一种共享机制,Quorum Journal Node(JournalNode)集群或者Nnetwor
用户1263954
2018/06/22
1.4K0
Hadoop集群配置
hadoop集群配置 1.多台机器ssh免密配置 修改用户名 # 1.更改hostname hostnamectl --static set-hostname <主机名> scp传输文件 scp <文件路径> <目标账号@地址>: 目标路径 scp /etc/hosts root@hadoop2: /etc/ ssh免密登录 # 配置公钥 ssh-keygen # 配置免密登录 ssh-copy-id <目标ip> 2. 多台主机时间核对 所有机器安装ntp yum -y
俺也想起舞
2019/07/24
1.4K0
3台hadoop集群部署计划---安装系列一
注意:apache官网提供的hadoop-2.x的安装包是在32位操作系统编译的,因为hadoop依赖一些C++的本地库,
Dlimeng
2023/06/29
2910
第一篇:Centos7 Hadoop 2.7.7 集群部署
可知 2T 挂载在 data 目录下,所以接下来的部署主要在 data 目录下进行。
文末丶
2021/12/27
7830
快速学习-HDFS HA高可用
1)所谓HA(High Available),即高可用(7*24小时不中断服务)。 2)实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。 3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。 4)NameNode主要在以下两个方面影响HDFS集群 NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 NameNode机器需要升级,包括软件、硬件升级,此时集群也将无法使用 HDFS HA功能通过配置Active/Standby两个NameNodes实现在集群中对NameNode的热备来解决上述问题。如果出现故障,如机器崩溃或机器需要升级维护,这时可通过此种方式将NameNode很快的切换到另外一台机器。
cwl_java
2020/02/21
7860
快速学习-HDFS HA高可用
Hadoop高可用(HA)集群搭建
HA:High Available,高可用 在Hadoop 2.0之前,在HDFS集群中NameNode存在单点故障 (SPOF:A Single Point of Failure) 对于只有一个NameNode的集群,如果NameNode机器出现故障(比如宕机或是软件、硬件升级),那么整个集群将无法使用,直到NameNode重新启动
CoderJed
2018/09/13
4.4K0
Hadoop高可用(HA)集群搭建
原 Spark On Yarn完全分布式搭
Spark On Yarn完全分布式搭建     Spark On Yarn的搭建分为三个阶段,第一个是Zookeeper集群的搭建,第二是Hadoop集群的搭建,第三是Spark集群的搭建。所以以下将按照这三个步骤来给大家进行展示Spark On Yarn完全分布式搭建。 一、准备 1、软件及版本     1. jdk-8u65-linux-x64.tar.gz     2. scala-2.11.0.tgz     3. zookeeper-3.4.7.tar.gz     4. hadoop-2.7.
云飞扬
2018/05/17
1.7K0
大数据技术之_07_Hadoop学习_HDFS_HA(高可用)_HA概述+HDFS-HA工作机制+HDFS-HA集群配置+YARN-HA配置+HDFS Federation(联邦) 架构设计
1、修改ip 2、修改主机名及主机名和ip地址的映射 3、关闭防火墙 4、ssh免密登录 5、安装JDK,配置环境变量等
黑泽君
2019/02/25
1.9K0
docker 部署 hadoop集群
sudo docker cp apache-zookeeper-3.5.5.tar.gz cluster-slave1:/root/tar
程序员朱永胜
2023/08/17
3490
docker 部署 hadoop集群
docker搭建hadoop集群
前置条件:jdk环境,zookeeper环境在前期需要安装好,这个可以看之前的文章。
千羽
2023/08/28
8470
docker搭建hadoop集群
Hadoop完全分布式安装
完全分布式安装部署,其实步骤上来说与伪分布式没有太大的区别,主要增加2台虚拟机部署称为一个3台的集群
我脱下短袖
2019/12/21
4770
【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】
官方参考 配置 地址 :http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html
梅花
2020/09/28
1.1K0
一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
本文介绍了大数据技术生态从Hadoop到Spark的演进,重点介绍了Hadoop、Spark、Hive、HBase、Kafka等大数据组件的架构原理、应用场景、最佳实践,以及基于云原生技术的大数据解决方案。
别先生
2018/01/02
1.9K0
一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
【首页推荐】详解 Hadoop HA 完全分布式部署配置及运行调试
本期主要介绍 Hadoop HA 完全分布式模式的部署。HA 完全分布式模式(Highly Available Fully-Distributed Mode)是生产环境上最常见的 Hadoop 安装部署方式。HA 即高可用,是指当当前工作中的机器宕机后,会自动处理这个异常,并将工作无缝地转移到集群中的其他备用机器上去,以保证服务的高可用性。
数人之道
2022/01/07
2.9K1
【首页推荐】详解 Hadoop HA 完全分布式部署配置及运行调试
CentOS集群安装CDH Hadoop环境 操作指引 及Yarn Hbase Spark配置安装
此篇博客主要记录集群安装Hadoop环境的流程及配置讲解。这里的IP已换成192.168.0.*
大鹅
2020/06/24
1.6K0
CentOS集群安装CDH Hadoop环境 操作指引 及Yarn Hbase Spark配置安装
Hadoop hdfs+Spark配置
<configuration> <property> <name>dfs.nameservices</name> <value>guanjian</value> </property> <property> <name>dfs.ha.namenodes.guanjian</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.guanjian.nn1</name> <value>host1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.guanjian.nn2</name> <value>host2:8020</value> </property> <property> <name>dfs.namenode.http-address.guanjian.nn1</name> <value>host1:50070</value> </property> <property> <name>dfs.namenode.http-address.guanjian.nn2</name> <value>host2:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://host1:8485;host2:8485/guanjian</value> </property> <property> <name>dfs.client.failover.proxy.provider.guanjian</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/opt/jn/data</value> </property> <property>
算法之名
2019/08/20
5880
OushuDB 安装与升级之安装 HDFS
由于hadoop依赖于特定版本的snappy,请先卸载snappy确保安装的顺利进行:
用户7454708
2023/05/08
2070
OushuDB 安装与升级之安装 HDFS
推荐阅读
相关推荐
hadoop搭建完全分布式集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验