关键词:
Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用
文章目录
一、Hadoop高可用
1.1、zoomkeeper集群部署
由于一个HDFS集群由一个NameNode节点和多个DataNode节点组成,一旦NameNode节点宕机,那么HDFS将不能进行文件的上传与下载。
Hadoop依赖Zookeeper实现HDFS集群的高可用,由状态为Active的NameNode节点对外提供服务,而状态为StandBy的NameNode节点则负责数据的同步,一旦状态为Active的NameNode节点宕机,则状态为StandBy的NameNode节点将会切换为Active状态对外提供服务。
需要五台虚拟机:两个主节点做高可用server1、server5(2G内存),其余是DN(1G内存)
真实主机再开启一台虚拟机server5
server1停止所有运行的节点,删除/tmp目录下的所有数据,清理hadoop
server2、server3和server4也都把/tmp目录下的数据清空
server5安装nfs
server5添加hadoop用户,挂载nfs中server1分享的/home/hadoop
目录到本地的/home/hadoop
目录,然后切换到hadoop用户进行测试
真实主机将zookeeper包发送到server1的/home/hadoop目录下
server1解压zookeeper包然后切换到zookeeper目录下,复制zoo_sample.cfg文件为zoo.cfg,然后编辑,因为是nfs文件系统所以其他节点的内容也同步修改了
指定数据目录为/tmp/zookeeper,指定server2在zk集群中节点编号为1,依次类推,server3的编号为2,server4的编号为3,2888端口用来同步数据,3888端口用来选举leader
server2创建/tmp/zookeeper目录,将自己的编号1输入到zookeeper/myid内,开启zkServer
server3创建/tmp/zookeeper目录,将自己的编号2输入到zookeeper/myid内,开启zkServer
server4创建/tmp/zookeeper目录,将自己的编号3输入到zookeeper/myid内,开启zkServer
server2查看自己的zk集群状态,显示follower
server3查看自己的zk集群状态,显示leader
server4查看自己的zk集群状态,显示follower
server2连接zookeeper作为查询窗口
查看DFS虚拟目录
1.2、hdfs高可用
server1编辑core-site.xml文件,指定hdfs的NN为master,指定zookeeper集群主机的地址和端口
[hadoop@server1 hadoop]$ cat core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://masters</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>172.25.33.2:2181,172.25.33.3:2181,172.25.33.4:2181</value>
</property>
</configuration>
再编辑hdfs-site.xml
[hadoop@server1 hadoop]$ cat hdfs-site.xml
<!-- Put site-specific property overrides in this file. -->
<configuration>
## 指定副本数为3
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
## 指定 hdfs 的 nameservices 为 masters,要与 core-site.xml 中的设置一致
<property>
<name>dfs.nameservices</name>
<value>masters</value>
</property>
## masters 含有两个 namenode 节点,名称为 h1 和 h2 (名称可自定义)
<property>
<name>dfs.ha.namenodes.masters</name>
<value>h1,h2</value>
</property>
## h1 节点的 rpc 通信地址
<property>
<name>dfs.namenode.rpc-address.masters.h1</name>
<value>172.25.33.1:9000</value>
</property>
## h1 节点的 http 通信地址
<property>
<name>dfs.namenode.http-address.masters.h1</name>
<value>172.25.33.1:9870</value>
</property>
## h2 节点的 rpc 通信地址
<property>
<name>dfs.namenode.rpc-address.masters.h2</name>
<value>172.25.33.5:9000</value>
</property>
## h2 节点的 http 通信地址
<property>
<name>dfs.namenode.http-address.masters.h2</name>
<value>172.25.33.5:9870</value>
</property>
## NameNode 元数据在 JournalNode 上的存放位置
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://172.25.33.2:8485;172.25.33.3:8485;172.25.33.4:8485/masters</value>
</property>
## JournalNode 在本地磁盘存放数据的位置
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/tmp/journaldata</value>
</property>
## 开启 NameNode 失败自动切换
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
## 配置失败自动切换实现方式
<property>
<name>dfs.client.failover.proxy.provider.masters</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
## 配置隔离机制方法
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
## sshfence 隔离机制需要 ssh 免密码
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
## sshfence 隔离机制超时时间
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>
server2查看java进程看到开启了QuorumPeerMain,再开启journalnode,三个DN节点按照编号顺序依次开启
server3开启journalnode
server4开启journalnode
server1格式化 HDFS 集群
将/tmp/hadoop-hadoop里的数据拷贝到server5的/tmp目录下,因为NN数据默认存放在/tmp目录下
在server1上执行格式化zookeeper
server2作为查询窗口连接zookeeper
可以正常访问文件系统
server1启动hdfs集群,完成后可以看到DFSZKFailoverController开启
server2刚才已经连接了zookeeper,查看NN主备,可以看到server1是主
在server1的hadoop管理页面也可以看到server1状态为活跃
server5 的状态为备用
server1新建/user/hadoop虚拟目录,上传input目录
先登录server1的hadoop管理页面查看,可以正常访问/user/hadoop/input里的内容
查看capacity-scheduler.xml文件可以看到server2、server3和server4为hadoop集群主机
而在server5的hadoop管理页面就无法查看目录内容
1.3、高可用测试
server1查看NN进程id,杀掉该进程
server2与zookeeper保持着连接,查看NN主备,可以看到现在server5是主
浏览器访问server1的hadoop主页,无法访问
再访问server5的hadoop管理页面,可以看到现在显示server5是active
server5现在也可以正常查看文件系统目录内容
server1查看input目录正常,现在重新开启namenode进程
server1的hadoop管理页面现在可以正常访问,显示状态为备用
二、Yarn高可用
1.1、RM高可用部署
由于一个Yarn集群由一个ResourceManager节点和多个NodeManager节点组成,一旦ResourceManager节点宕机,那么YARN集群将不能进行资源的调度。
server1编辑yarn-site.xml
[hadoop@server1 hadoop]$ cat yarn-site.xml
<configuration>
## 配置可以在 nodemanager 上运行 mapreduce 程序
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
## 指定环境变量
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
## 激活 RM 高可用
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
## 指定 RM 的集群 id
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>RM_CLUSTER</value>
</property>
## 定义 RM 的节点
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
## 指定 RM1 的地址
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>172.25.33.1</value>
</property>
## 指定 RM2 的地址
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>172.25.33.5</value>
</property>
## 激活 RM 自动恢复
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
## 配置 RM 状态信息存储方式,有 MemStore 和 ZKRMStateStore
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
## 配置为 ZKRMStateStore 存储时,指定 zookeeper 集群的地址
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>172.25.33.2:2181,172.25.33.3:2181,172.25.33.4:2181</value>
</property>
</configuration>
server1启动yarn服务,可以看到ResourceManager是server1和server5
在server1和server5上均可以看到ResourceManager进程
server2上运行NodeManager进程
server3上运行NodeManager进程
server4上运行NodeManager进程
server2与zookeeper保持着连接,查看主备,可以看到rm1是主
浏览器访问server1的yarn资源管理页面,可以看到状态是active
浏览器访问server5的yarn资源管理页面,查看状态是standby备用
1.2、RM高可用测试
server1查看RM进程的id,然后杀死该进程
浏览器访问server5的yarn资源管理页面,查看状态,现在变成了active活跃
server1再重新开启RM进程
浏览器访问server1的yarn资源管理页面,查看状态,现在server1是standby备用
三、hbase高可用
真实主机将hbase包发送到server1的/home/hadoop目录下
server1收到hbase压缩包后进行解压,然后进入hbase目录。再进入conf目录
编辑hbase-env.sh环境变量配置文件,HBASE_MANAGES_ZK
参数设为false
,因为hbase自带zk,而我们已经配置好了
填入java和hadoop的环境变量
再编辑hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://masters/hbase</value>
</property>
## 启用 hbase 分布式模式
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
## 配置zk集群节点的地址
<property>
<name>hbase.zookeeper.quorum</name>
<value>172.25.33.2,172.25.33.3,172.25.33.4</value>
</property>
## 指定hbase的master
<property>
<name>hbase.master</name>
<value>h1</value>
</property>
</configuration>
编辑完成并保存
server1编辑regionservers文件,输入zk集群的节点ip
由于文件系统共享,server5可以直接进入到hbase目录下,作为主节点运行hbase,jps
查看可以看到HMaster进程
server1作为备用节点运行hbase,jps
查看可以看到HMaster进程
server2、server3和server4可以看到本地运行HRegionServer进程作为集群节点
浏览器访问server5的16010端口进入hbase管理页面,可以看到身份是Master,还可以看到集群节点server2、3、4和备用节点server1
server2与zookeeper保持着连接,查看hbase的master,可以看到是server5
测试:
server5进入hbase shell,创建test表
向test中插入数据,查看test内容
server5查看HMaster进程ID,杀死该进程
浏览器访问server1的16010端口进入hbase管理页面,可以看到现在server1是Master,备用主节点无内容
浏览器访问server5的16010端口进入hbase管理页面,但是已经无法访问
server5作为备用主节点启动hbase
在hbase管理页面中可以看到server1还是master,备用主节点为server5
server2与zookeeper保持着连接,查看hbase的master,可以看到现在是server1
server5再次进入hbase shell,查看test内容,内容依然存在,正常显示
浏览器访问server5的9870端口进入hadoop页面,可以看到hbase目录
进入hbase目录下可以正常查看目录内的文件
linux企业运维——hadoop大数据平台(下)hdfs高可用yarn高可用hbase高可用(代码片段)
Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用文章目录Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用一、Hadoop高可用1.1、zoomkeeper集群部署1.2、hdfs高可用1.... 查看详情
linux企业运维——hadoop大数据平台(上)hadoop工作原理部署资源管理器yarn(代码片段)
Linux企业运维——Hadoop大数据平台(上)Hadoop工作原理、部署、资源管理器Yarn文章目录Linux企业运维——Hadoop大数据平台(上)Hadoop工作原理、部署、资源管理器Yarn一、Hadoop简介1.1、Hadoop框架与模块1.2、Hadoop工作... 查看详情
linux企业运维——elk日志分析平台(下)kibana数据可视化xpack安全验证轻量级metricbeat(代码片段)
Linux企业运维——ELK日志分析平台(下)kibana数据可视化、xpack安全验证、轻量级metricbeat文章目录Linux企业运维——ELK日志分析平台(下)kibana数据可视化、xpack安全验证、轻量级metricbeat一、kibana数据可视化1.1、kib... 查看详情
大数据运维工作(linux,ogg,链路监控,hadoop运维等)(代码片段)
大数据运维工程师工作内容Linux运维手册1.启动/关闭集群组件1.1负载均衡1)Nginx运维命令Copytoclipboardcd/usr/nginx/sbin#进入sbin目录Copytoclipboard./nginx#启动nginxCopytoclipboard./nginx-sstop#停止NginxCopytoclipboard./nginx-sreload#重启Ngi 查看详情
linux企业运维——elk日志分析平台(下)kibana数据可视化xpack安全验证轻量级metricbeat(代码片段)
Linux企业运维——ELK日志分析平台(下)kibana数据可视化、xpack安全验证、轻量级metricbeat文章目录Linux企业运维——ELK日志分析平台(下)kibana数据可视化、xpack安全验证、轻量级metricbeat一、kibana数据可视化1.1、kib... 查看详情
学完linux去哪里就业比较好?
...。 1:服务器、系统,包括系统集成、系统工程师、运维工程师、云工程师等; 2、云计算大数据:运维开发、运维大数据、大数据、云工程师(偏开发); 3、人工智能:智能运维、大数据分析、算法工程师。Linux就业方向... 查看详情
大数据时代,就业转型必备技能!
...PythonPython往往在大数据处理框架中得到支持。3、Linux运维企业大数据开发往往是在Linux操作系统下完成的,因此,想从事大数据相关工作,需要掌握Linux系统操作方法和相关命令。在 查看详情
linux企业运维——elk日志分析平台(中)es节点优化logstash数据采集过滤插件(代码片段)
Linux企业运维——ELK日志分析平台(中)ES节点优化、logstash数据采集、过滤插件文章目录Linux企业运维——ELK日志分析平台(中)ES节点优化、logstash数据采集、过滤插件一、ES节点优化1.1、ES节点角色1.2、节点角色... 查看详情
开源项目丨一文详解一站式大数据平台运维管家chengying如何部署hadoop集群
课件获取:关注公众号“数栈研习社”,后台私信“ChengYing”获得直播课件视频回放:点击这里ChengYing开源项目地址:github 丨 gitee 喜欢我们的项目给我们点个__STAR!STAR!!STAR!!!(重... 查看详情
大数据运维---linux安装hadoophadoopha集群部署(代码片段)
1.Hadoop下载好之后解压到相应目录: 为了方便管理,我们使用mv把名称更改为hadoop[root@master~]#tar-zxvfhadoop-2.7.1.tar.gz-C/usr/local/src/[root@master~]#cd/usr/local/src/[root@mastersrc]#lshadoop-2.7.1javazookeeper[root@mastersrc]#mvhadoop... 查看详情
请描述下大数据三大平台hadoop,storm,spark的区别和应用场景
...最活跃的开源大数据项目,但是,在选择大数据框架时,企业不能因此就厚此薄彼近日,著名大数据专家BernardMarr在一篇文章中分析了Spark和Hadoop的异同Hadoop和Spark均是大数据框架,都提供了一些执行常见大数据任务的工具,但确... 查看详情
大数据hadoop实验报告(代码片段)
文章目录实验一熟悉常用的Linux操作和Hadoop操作1.实验目的2.实验平台3.实验内容和要求实验二熟悉常用的HDFS操作1.实验目的2.实验平台3.实验步骤实验三熟悉常用的HBase操作1.实验目的2.实验平台3.实验步骤实验四MapReduce/Spark编程初... 查看详情
大数据hadoop实验报告(代码片段)
文章目录实验一熟悉常用的Linux操作和Hadoop操作1.实验目的2.实验平台3.实验内容和要求实验二熟悉常用的HDFS操作1.实验目的2.实验平台3.实验步骤实验三熟悉常用的HBase操作1.实验目的2.实验平台3.实验步骤实验四MapReduce/Spark编程初... 查看详情
大数据之就业岗位
数据部门的组织架构运维组1.负责分析大数据平台各个组件运行状态,负责大数据平台运行故障的分析,定位和解决,并根据业务场景进行定制优化2.负责业务集群日常问题的解答、汇总整理、跟踪解决等;3.参与... 查看详情
大数据linux重要吗
...良好的界面,支持多种平台。随着网络科技的发展,现在企业对大数据Linux人才IDE需求也变得越来越多,所以它的前景还是非常不错的。 查看详情
ai和大数据结合,智能运维平台助力流利说提升核心竞争力
...阿里云智能技术专家优质的内容与定制化服务,提升企业核心竞争力2020年受疫情影响,在“停课不停学”的口号下 查看详情
大数据在哪儿学比较好?
...究竟有哪些就业方向。大数据就业岗位随着大数据技术在企业界如火如荼的实践,企业对组建大数据团队的迫切程度也也来越高,对与大数据相关高端人才的需求也越来越紧迫,但企业对大数据团队的组建和角色分配方面缺一直... 查看详情
大数据资产管理平台实践(ppt)
...方卡片回复:666,领取资料数据资产管理服务工作,涵盖企业IT系统生命周期的不同阶段,协助企业建立适合自身特点的数据资产管理制度,提升企业对自身数据资产管理的能力,为后续数据挖掘变现提供可靠、有价值和高质量的... 查看详情