Hadoop学习笔记——HA

HA 即 High Available 高可用。

Hadoop学习笔记——HA

# 其作用是为了减少主从结构的单点故障,而设置备用节点,既然学习了Hadoop生态圈,那么HA配置也是必须要掌握的。

# 因为生产环境中,一定会设置HA,减少故障率。

# 参考了好几处的教程,自己动手实践了下,成功。

# 会有一些配置文件需要修改,如果嫌vim麻烦,可以将文件下载到windows,改好后再传回去。

# 本次软件版本: CentOS 6.5 x64 jdk-8u161-linux-x64.tar.gz zookeeper-3.4.5.tar.gz hadoop-2.7.5.tar.gz

分享之前我还是要推荐下我自己创建的大数据学习交流Qun531629188

无论是大牛还是想转行想学习的大学生

小编我都挺欢迎,今天的已经资讯上传到群文件,不定期分享干货,

包括我自己整理的一份最新的适合2018年学习的大数据教程,欢迎初学和进阶中的小伙伴。

一、集群的规划 四台VM12

Zookeeper集群:

192.168.112.10 master

192.168.112.11 slave1

192.168.112.12 slave2

Hadoop集群:

192.168.112.10 master NameNode1 ResourceManager1 Journalnode

192.168.112.11 slave1 NameNode2 ResourceManager2 Journalnode

192.168.112.12 slave2 DataNode1

192.168.112.13 slave3 DataNode2

二、准备工作

1、安装JDK

2、配置环境变量

3、配置免密码登录

4、配置主机名、网络、关闭防火墙 ...

三、配置Zookeeper(在192.168.112.10 master 安装)

在主节点(master)上配置ZooKeeper

(*)配置/usr/local/src/zookeeper/conf/zoo.cfg文件

dataDir=/usr/local/src/zookeeper/zkdataclientPort=2181server.1=master:2888:3888server.2=slave1:2888:3888server.3=slave2:2888:3888

(*)在/usr/local/src/zookeeper/zkdata目录下创建一个myid的空文件

echo 1 > myid

(*)将配置好的zookeeper拷贝到其他节点,同时修改各自的myid文件

scp -r /usr/local/src/zookeeper slave1:/usr/local/srcscp -r /usr/local/src/zookeeper slave2:/usr/local/src

四、安装Hadoop集群(在 master 上安装)

1、修改hadoo-env.sh

export JAVA_HOME=/usr/local/src/jdk1.8.0_161

2、修改core-site.xml

Hadoop学习笔记——HA

<configuration><!-- 指定hdfs的nameservice为 names1 --><property><name>fs.defaultFS</name><value>hdfs://names1</value></property><!-- 指定hadoop临时目录 --><property><name>hadoop.tmp.dir</name><value>/usr/local/src/hadoop-2.7.5/tmp</value></property><!-- 指定zookeeper地址 --><property><name>ha.zookeeper.quorum</name><value>master:2181,slave1:2181,slave2:2181</value></property></configuration>

Hadoop学习笔记——HA

3、修改hdfs-site.xml(配置这个nameservice中有几个namenode)

Hadoop学习笔记——HA

<configuration> <!-- 指定hdfs的nameservice为 names1 ,需要和core-site.xml中的保持一致 --><property><name>dfs.nameservices</name><value>names1</value></property><!-- names1下面有两个NameNode,分别是nn1,nn2 --><property><name>dfs.ha.namenodes.names1</name><value>nn1,nn2</value></property><!-- nn1的RPC通信地址 --><property><name>dfs.namenode.rpc-address.names1.nn1</name><value>master:9000</value></property><!-- nn1的http通信地址 --><property><name>dfs.namenode.http-address.names1.nn1</name><value>master:50070</value></property><!-- nn2的RPC通信地址 --><property><name>dfs.namenode.rpc-address.names1.nn2</name><value>slave1:9000</value></property><!-- nn2的http通信地址 --><property><name>dfs.namenode.http-address.names1.nn2</name><value>slave1:50070</value></property><!-- 指定NameNode的日志在JournalNode上的存放位置 --><property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://master:8485;slave1:8485;/names1</value></property><!-- 指定JournalNode在本地磁盘存放数据的位置 --><property><name>dfs.journalnode.edits.dir</name><value>/usr/local/src/hadoop-2.7.5/journal</value></property><!-- 开启NameNode失败自动切换 --><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property><!-- 配置失败自动切换实现方式 --><property><name>dfs.client.failover.proxy.provider.names1</name><value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value></property><!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行--><property><name>dfs.ha.fencing.methods</name><value>sshfenceshell(/bin/true)</value></property><!-- 使用sshfence隔离机制时需要ssh免登陆 --><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value></property><!-- 配置sshfence隔离机制超时时间 --><property><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value></property></configuration>

Hadoop学习笔记——HA

cd /usr/local/src/hadoop-2.7.5/mkdir journalchmod 777 journal

4、修改mapred-site.xml

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

5、修改yarn-site.xml

Hadoop学习笔记——HA

<configuration><!-- 开启RM高可靠 --><property><name>yarn.resourcemanager.ha.enabled</name><value>true</value></property><!-- 指定RM的cluster,不能与nameservices相同 id --><property><name>yarn.resourcemanager.cluster-id</name><value>yrc</value></property><!-- 指定RM的名字 --><property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value></property><!-- 分别指定RM的地址 --><property><name>yarn.resourcemanager.hostname.rm1</name><value>master</value></property><property><name>yarn.resourcemanager.hostname.rm2</name><value>slave1</value></property><!-- 指定zk集群地址 --><property><name>yarn.resourcemanager.zk-address</name><value>master:2181,slave1:2181,slave2:2181</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>

Hadoop学习笔记——HA

6、修改slaves

bigdata14bigdata15

7、将配置好的hadoop拷贝到其他节点

scp -r /usr/local/src/hadoop-2.7.5/ root@slave1:/usr/local/src/ scp -r /usr/local/src/hadoop-2.7.5/ root@slave2:/usr/local/src/ scp -r /usr/local/src/hadoop-2.7.5/ root@slave3:/usr/local/src/

五、启动Zookeeper集群

每台上面 zkServer.sh start

六、在master和slave1上启动journalnode

hadoop-daemon.sh start journalnode

七、格式化HDFS(在 master 上执行)

1. hdfs namenode -format

2. 将/usr/local/src/hadoop-2.7.5/tmp拷贝到slave1的/usr/local/src/hadoop-2.7.5/tmp下

3. 格式化zookeeper

hdfs zkfc -formatZK# 日志:18/04/11 22:34:33 INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/names1 in ZK.

八、在master上启动Hadoop集群

start-all.sh

# 日志:

Starting namenodes on [master slave1]

slave1: starting namenode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-namenode-slave1.out

master: starting namenode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-namenode-master.out

slave3: starting datanode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-datanode-slave3.out

slave2: starting datanode, logging to /usr/local/src/hadoop-2.7.5/logs/hadoop-root-datanode-slave2.out

slave1上的ResourceManager需要单独启动

yarn-daemon.sh start resourcemanager

九、验证与检查

jps查看每台的进程:(这里没显示Jps进程)

Hadoop学习笔记——HA

master: 3745 QuorumPeerMain 3812 JournalNode 4484 ResourceManager 4070 NameNode 4377 DFSZKFailoverControllerslave1: 3809 ResourceManager 3602 NameNode 3522 JournalNode 3715 DFSZKFailoverController 3455 QuorumPeerMainslave2: 19316 NodeManager 19207 DataNode 19118 QuorumPeerMainslave3: 3530 DataNode 3630 NodeManager

Hadoop学习笔记——HA

分别访问:http://master:50070 和 http://slave1:50070 可以看到一个是active, 另一个是standby 而Namespace均显示为names1

分别访问:http://master:8088 和 http://slave1:8088 其中slave1将自动跳转到master,注意看浏览器URL的变化。Nodes中可以看到DataNode

模拟宕机:master 上执行 kill -9 4070 后,立刻刷新http://slave1:50070 会发现变在了active

然后再重新启动宕掉的master进程: sbin/hadoop-daemon.sh start namenode 启动成功后,master会变为standby状态。

十、停止服务

好了,我要关掉VM了,所以要先停掉这些服务。

master上 stop-all.sh

slave1上 stop-all.sh 因为刚才有个RM是单独启动的,所以也需要单独来停止。

在每台zk上zkServer.sh stop

转载于:https://my.oschina.net/u/3864946/blog/1816275

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
Hadoop是一个开源的分布式计算框架,可用于大数据的存储和处理。它采用了分布式文件系统(HDFS)和分布式计算框架(MapReduce),能够将大数据分割成小的数据块,并在集群中的多台计算机上并行处理这些数据块。 HDFS是Hadoop的分布式文件系统,它将大文件切分为多个数据块,并将这些数据块存储在集群中的多个计算机上。HDFS使用主从架构,其中NameNode负责管理文件系统的元数据,而多个DataNode负责实际存储数据。HDFS具有高容错性,能够自动复制数据块以保证数据的可靠性。 MapReduce是Hadoop的分布式计算框架,它通过将计算任务划分为多个Map和Reduce阶段来进行并行计算。Map阶段将输入数据切分为多个独立的小任务,并在集群中的多个计算机上并行执行。Reduce阶段将Map阶段的输出合并并进行聚合计算。MapReduce具有自动并行化、容错性和可扩展性等优点,能够高效地处理大规模数据集。 在学习Hadoop时,首先要了解Hadoop的核心组件,包括HDFS和MapReduce。然后,需要学习Hadoop的架构和工作原理,理解Hadoop如何实现分布式存储和计算。接下来,需要学习Hadoop的安装和配置,包括在单机和集群环境下的安装和配置过程。此外,还需要学习Hadoop的命令行工具和管理工具,以及Hadoop的API和编程模型。 在实际使用Hadoop时,需要掌握Hadoop的常用操作和管理技巧,如如何上传和下载文件、如何执行MapReduce作业、如何监控和管理Hadoop集群等。同时,需要学习Hadoop的优化技术和调优方法,以提高Hadoop集群的性能和效率。 总之,对于Hadoop学习,除了理解其基础知识和工作原理外,还需要熟悉其常用操作和管理技巧,以及灵活运用Hadoop来解决实际的大数据问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值