实训一、安装java

步骤一、解压并重命名java

[root@master ~]#

tar -xzvf /opt/software/jdk-8u212-linux-x64.tar.gz -C /opt/module/
mv /opt/module/jdk1.8.0_212 /opt/module/java

步骤二、配置全局环境变量

[root@master ~]#

vim /etc/profile

配置内容:

export JAVA_HOME=/opt/module/java
export PATH=$PATH:$JAVA_HOME/bin

加载环境变量

source /etc/profile

步骤三、测试java

[root@master ~]#

javac
java -version

步骤四、分发java文件和环境变量

[root@master ~]#

scp -r /opt/module/java root@slave1:/opt/module/java
scp -r /opt/module/java root@slave2:/opt/module/java
scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/

实训二、安装zookeeper集群

步骤一、解压并重命名为zookeeper

[root@master ~]#

tar -xzvf /opt/software/apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
mv /opt/module/apache-zookeeper-3.5.7-bin /opt/module/zookeeper

步骤二、配置用户环境变量

[root@master ~]#

vim /root/.bash_profile

配置内容:

export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

加载环境变量

source /root/.bash_profile

步骤三、配置zoo.cfg文件

[root@master ~]#

cp /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg
vim $ZOOKEEPER_HOME/conf/zoo.cfg

配置内容:

# 配置zk数据文件路径
dataDir=/opt/module/zookeeper/data
# 配置zk日志文件
dataLogDir=/opt/module/zookeeper/logs
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

步骤四、配置myid文件

[root@master ~]#

mkdir -p  $ZOOKEEPER_HOME/{logs,data}
echo "1" > $ZOOKEEPER_HOME/data/myid

步骤五、分发文件

scp -r /opt/module/zookeeper root@slave1:/opt/module/
scp -r /opt/module/zookeeper root@slave2:/opt/module/
scp /root/.bash_profile slave1:/root/
scp /root/.bash_profile slave2:/root/

步骤六、修改其他节点myid文件

[root@slave1 ~]#

echo 2 >  $ZOOKEEPER_HOME/data/myid
source /root/.bash_profile

[root@slave2 ~]#

echo 3 >  $ZOOKEEPER_HOME/data/myid
source /root/.bash_profile

步骤七、启动zookeer集群

[root@master ~]#

zkServer.sh start

[root@slave1 ~]#

zkServer.sh start

[root@slave2 ~]#

zkServer.sh start

步骤八、查看jps进程

[root@master ~]#

jps

[root@slave1 ~]#

jps

[root@slave2 ~]#

jps

实训三、部署Hadoop HA

步骤一、解压并重命名

[root@master ~]#

 tar -xzvf /opt/software/hadoop-3.1.3.tar.gz -C /opt/module/ mv /opt/module/hadoop-3.1.3 /opt/module/hadoop

步骤二、配置环境变量

[root@master ~]#

vim /root/.bash_profile

配置内容:

export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

加载环境变量

source /root/.bash_profile

步骤三、查看hadoop版本

[root@master ~]#

hadoop version

步骤四、配置hadoop-env.sh

[root@master ~]#

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

配置内容:

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export JAVA_HOME=/opt/module/java

步骤五、配置hdfs-site.xml

[root@master ~]#

vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

配置内容:

<property><!--nameservices逻辑名称--><name>dfs.nameservices</name><value>mycluster</value>
</property>
<property><!--nameservices服务中每个 NameNode 的唯一标识符--><name>dfs.ha.namenodes.mycluster</name><value>nn1,nn2,nn3</value>
</property>
<property><!--nn1 NameNode监听的完全限定的 RPC 地址--><name>dfs.namenode.rpc-address.mycluster.nn1</name><value>master:8020</value>
</property>
<property><!--nn2 NameNode监听的完全限定的 RPC 地址--><name>dfs.namenode.rpc-address.mycluster.nn2</name><value>slave1:8020</value>
</property>
<property><!--nn3 NameNode监听的完全限定的 RPC 地址--><name>dfs.namenode.rpc-address.mycluster.nn3</name><value>slave2:8020</value>
</property>
<property><!--nn1 NameNode 监听的完全限定的 HTTP 地址--><name>dfs.namenode.http-address.mycluster.nn1</name><value>master:9870</value>
</property>
<property><!--nn2 NameNode 监听的完全限定的 HTTP 地址--><name>dfs.namenode.http-address.mycluster.nn2</name><value>slave1:9870</value>
</property>
<property><!--nn3 NameNode 监听的完全限定的 HTTP 地址--><name>dfs.namenode.http-address.mycluster.nn3</name><value>slave2:9870</value>
</property>
<property><!--标识 NameNode 将在其中写入/读取编辑的 JN 组的 URI--><name>dfs.namenode.shared.edits.dir</name><value>qjournal://master:8485;slave1:8485;slave2:8485/mycluster</value>
</property>
<property><!--HDFS 客户端用来联系 Active NameNode 的 Java 类--><name>dfs.client.failover.proxy.provider.mycluster</name>   <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property><!--一个脚本或 Java 类的列表,将在故障转移期间用于隔离 Active NameNode--><name>dfs.ha.fencing.methods</name><value>sshfence</value>
</property><property><!--SSH 到 Active NameNode 并终止进程--><name>dfs.ha.fencing.ssh.private-key-files</name><value>/root/.ssh/id_rsa</value>
</property>
<property><!--SSH连接超时时长(毫秒)--><name>dfs.ha.fencing.ssh.connect-timeout</name><value>30000</value>
</property>
<property> <!--开启自动故障转移--><name>dfs.ha.automatic-failover.enabled</name> <value>true</value>
</property>
<property> <!--配置zk集群--><name>ha.zookeeper.quorum</name> <value>master:2181,slave1:2181,slave2:2181</value> </property>
<property><!--hadoop的副本数量,默认为3--><name>dfs.replication</name><value>3</value>
</property>
<property><!--在本地文件系统所在的NameNode的存储空间和持续化处理日志--><name>dfs.namenode.name.dir</name><value>/opt/module/hadoop/dfs/name</value>
</property>
<property><!--在本地文件系统所在的DataNode的存储空间和持续化处理日志--><name>dfs.datanode.data.dir</name><value>/opt/module/hadoop/dfs/data</value>
</property>
<property><!--用于大型文件系统的 HDFS 块大小为 256MB。--><name>dfs.blocksize</name><value>268435456</value>
</property>
<property><!--NameNode 服务器线程来处理来自大量DataNode 的 RPC--><name>dfs.namenode.handler.count</name><value>100</value>
</property>

步骤六、配置core-site.xml

[root@master ~]#

vim $HADOOP_HOME/etc/hadoop/core-site.xml

配置内容

<property><!--hadoop临时文件路径--><name>hadoop.tmp.dir</name><value>/opt/module/hadoop/dfs/tmp</value>
</property>
<property><!--Hadoop FS 客户端使用的默认路径--><name>fs.defaultFS</name><value>hdfs://mycluster</value>
</property>
<property>
<!--SequenceFiles 中使用的读/写缓冲区的大小。--><name>io.file.buffer.size</name><value>131072</value>
</property>
<property><!--JournalNode 守护进程将存储其本地状态的路径--><name>dfs.journalnode.edits.dir</name><value>/opt/module/hadoop/journal/data</value>
</property>
<property><!--hadoop的副本数量,默认为3--><name>dfs.replication</name><value>3</value>
</property>
<property><!--hadoop临时文件路径--><name>hadoop.tmp.dir</name><value>/usr/local/src/hadoop/dfs/tmp</value>
</property>
<property><!--配置允许访问的主机--><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property>
<property><!--配置允许访问的用户组--><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property>
<property><!--配置允许访问的用户--><name>hadoop.proxyuser.root.users</name><value>*</value>
</property>

步骤七、配置yarn-site.xml

[root@master ~]#

vim $HADOOP_HOME/etc/hadoop/yarn-site.xml

配置内容

<property><!--逗号分隔的服务列表--><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<property><!--在资源管理器中分配给每个容器请求的最小内存限制。以 MB 为单位--><name>yarn.scheduler.minimum-allocation-mb</name><value>1024</value>
</property>
<property><!--在资源管理器中分配给每个容器请求的最大内存限制。以 MB 为单位--><name>yarn.scheduler.maximum-allocation-mb</name><value>4096</value>
</property>
<property><!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉--><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property>
<property><!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉--><name>yarn.nodemanager.vmem-check-enabled </name><value>false</value>
</property>
<property><!--可以为容器分配的 vcore 数量,这不用于限制 YARN 容器使用的物理内核数。默认为8--><name>yarn.nodemanager.resource.cpu-vcores</name><value>5</value>
</property>
<property><!--启用 RM HA--><name>yarn.resourcemanager.ha.enabled</name><value>true</value>
</property>
<property><!--标识集群。选举人使用它来确保 RM 不会接管另一个集群的活动。--><name>yarn.resourcemanager.cluster-id</name><value>RMcluster</value>
</property>
<property><!--RM 的逻辑 ID 列表--><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value>
</property>
<property><!--指定 RM逻辑id,rm1对应的主机名--><name>yarn.resourcemanager.hostname.rm1</name><value>master</value>
</property>
<property><!--指定 RM逻辑id,rm2对应的主机名--><name>yarn.resourcemanager.hostname.rm2</name><value>slave1</value>
</property>
<property><!--指定 RM逻辑id,rm1对应的web地址--><name>yarn.resourcemanager.webapp.address.rm1</name><value>master:8088</value>
</property>
<property><!--指定 RM逻辑id,rm2对应的web地址--><name>yarn.resourcemanager.webapp.address.rm2</name><value>slave1:8088</value>
</property>
<property><!--指定hadoop集群--><name>hadoop.zk.address</name><value>master:2181,slave1:2181,slave2:2181</value>
</property>

步骤八、配置mapred-site.xml

[root@master ~]#

vim $HADOOP_HOME/etc/hadoop/mapred-site.xml

配置内容

<property><!--执行框架设置为 Hadoop YARN--><name>mapreduce.framework.name</name><value>yarn</value>
</property>
<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/opt/module/hadoop</value>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/opt/module/hadoop</value>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/opt/module/hadoop</value>
</property>
<property><!--map任务的资源限制--><name>mapreduce.map.memory.mb</name><value>2048</value>
</property>
<property><!--map任务子jvm的堆大小--><mame>mapreduce.map.java.opts</mame><value>-Xmx1536M</value>
</property>
<property><!--reduce任务的资源限制--><name>mapreduce.reduce.memory.mb</name><value>4096</value>
</property>
<property><!--reduce任务子jvm的堆大小--><mame>mapreduce.map.java.opts</mame><value>-Xmx2560M</value>
</property>
<property><!--MapReduce JobHistory 服务器主机:端口--><name>mapreduce.jobhistory.address</name><value>master:10020</value>
</property>
<property><!--MapReduce JobHistory Server Web UI主机:端口--><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value>
</property>
<property><!--MapReduce 作业写入历史文件的目录--><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/mr-history/tmp</value>
</property>
<property><!--历史文件由 MR JobHistory Server 管理的目录。--><name>mapreduce.jobhistory.done-dir</name><value>/mr-history/done</value>
</property>

步骤九、配置workers

[root@master ~]#

vim  $HADOOP_HOME/etc/hadoop/workers

配置内容

master
slave1
slave2

步骤十、分发文件

[root@master ~]#

scp -r /opt/module/hadoop/ root@slave1:/opt/module/
scp -r /opt/module/hadoop/ root@slave2:/opt/module/
scp /root/.bash_profile root@slave1:/root/
scp /root/.bash_profile root@slave2:/root/

步骤十一、分别启动journalnode

[root@master ~]#

hdfs --daemon start journalnode

[root@slave1 ~]#

source /root/.bash_profile
hdfs --daemon start journalnode

[root@slave2 ~]#

source /root/.bash_profile
hdfs --daemon start journalnode

步骤十二、格式化namenode

[root@master ~]#

hdfs namenode -format

步骤十三、格式化zkfc

[root@master ~]#

hdfs zkfc -formatZK

步骤十四、启动集群

[root@master ~]#

start-all.sh

[root@master ~]#

jps

[root@slave1 ~]#

jps

[root@slave2 ~]#

jps

步骤十五、备用namenode复制元数据目录

[root@slave1 ~]#

hdfs namenode -bootstrapStandby

[root@slave2 ~]#

hdfs namenode -bootstrapStandby

[root@slave1 ~]#

 hdfs --daemon start  namenodejps

[root@slave2 ~]#

 hdfs --daemon start  namenodejps

步骤十六、运行pi程序测试

[root@master ~]#

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 10 10

步骤十七、查看所有namenode状态

[root@master ~]#

hdfs haadmin -getAllServiceState

步骤十八、重启master namenode

[root@master ~]#

hdfs --daemon start namenode
jps
hdfs haadmin -getServiceState nn1

hadoop3.1.3 HA相关推荐

  1. hadoop3.1.1 HA高可用分布式集群安装部署

    1.环境介绍 涉及到软件下载地址:https://pan.baidu.com/s/1hpcXUSJe85EsU9ara48MsQ 服务器:CentOS 6.8 其中:2 台 namenode.3 台 ...

  2. hadoop3节点hdfs ha,yarn ha配置

    2019独角兽企业重金招聘Python工程师标准>>> 0 各机器职责 进程 node1 node2 node3 NN NameNode 1 1 DN DateNode 1 1 1 ...

  3. Zeppelin集成Spark3

    Zeppelin集成Spark3 安装Zeppelin可以参考下面这篇博客: 安装zeppelin-0.9.0 zeppelin.notebook.storage设置notebook存放在hdfs上面 ...

  4. 大数据实践-Kyuubi

    概述 Kyuubi 是一个分布式多租户 Thrift JDBC/ODBC 服务器,用于大规模数据管理.处理和分析,构建在 Apache Spark 之上,旨在支持更多引擎(即 Flink). Kyuu ...

  5. Hadoop3.2.0 HDFS HA ( Quorum Journal Manager )

    目的 注意:使用Quorum Journal Manager或常规共享存储 背景 架构 硬件资源 部署 配置概述 配置细节 部署细节 管理命令 负载均衡器设置 自动故障转移 介绍 组件 部署ZooKe ...

  6. hadoop-3.0.0完整版HA部署

    一.环境准备: Linux7.2 hadoop-3.0.0.tar.gz JDK1.8 二.下载源 hadoop3.0.0下载地址:https://archive.apache.org/dist/ha ...

  7. Ansible搭建hadoop3.1.3高可用集群

    一.节点信息 内核版本:3.10.0-1062.el7.x86_64 系统版本:Red Hat Enterprise Linux Server release 7.7 (Maipo) 节点 ip 内存 ...

  8. Hadoop2.2.0+HA+zookeeper3.4.5详细配置过程+错误处理(一)

    Hadoop2.2.0+HA+zookeeper3.4.5+体系结构+错误处理 心血之作,在熟悉hadoop2架构的过程耽误了太长时间,在搭建环境过程遇到一些问题,这些问题一直卡在那儿,不得以解决,耽 ...

  9. Hadoop HA 双namenode搭建

    机器分布 hadoop1 192.168.56121 hadoop2 192.168.56122 hadoop3 192.168.56123 准备安装包 jdk-7u71-linux-x64.tar. ...

最新文章

  1. 你想要的宏基因组-微生物组知识全在这(180801)
  2. 用户重要数据转移方法〖罗斌个人工作经验谈〗
  3. C#连接EXCEL数据库
  4. iis 6.0上部署.net 2.0和4.0网站
  5. Django日志信息路径的设置
  6. 如何以可视化方式显示 Angular 应用构建后的 bundle 文件大小
  7. CTF刷题网站汇总(包括本地可以自己搭建的)(1)
  8. 深入理解Tomcat和Jetty源码之第一篇前奏知识
  9. C/C++中如何使用typedef给函数指针取别名使其更具可读性
  10. Git 相关使用命令
  11. iPhone 12 Pro Max外形、配置大曝光:安卓基本没对手了
  12. 作DJANGO ORM时的一些最佳实践
  13. TCHAR、WCHAR、CHAR以及WideCharToMultiByte、MultiByteToWideChar
  14. 华为2022校招新版官网状态码查询方法
  15. 2021软考软件设计师真题
  16. iMeta | 南农沈其荣团队发布微生物网络分析和可视化R包ggClusterNet
  17. linux命令配置永久ip地址,Linux命令行永久修改IP地址、网关和DNS。
  18. 陈大年:免费很贵创新很累 我如何做WiFi万能钥匙
  19. 运营商悄悄展开流量价格战,中国电信祭出29元含100GB流量卡
  20. Python的 yield用法

热门文章

  1. Vue3 实现一个自定义toast(小弹窗)
  2. 雾的性质及其不同通道原理
  3. Nordic DFU安卓空中升级
  4. 张江男 干物男 宅男
  5. 基于ThinkPHP6+MySQL实现的B2C商城系统,含数据库,支持多种营销活动,优惠劵、订单活动、团购、秒杀、会员特价、积分商品等功能
  6. 用HTML+CSS6音乐吧 7页
  7. 我的科幻评论——《天年》:瑰丽的中国风末日小说
  8. 小鼠IV型胶原蛋白稀释原理
  9. 太强了!终于有人整理出了仿京东电商项目,再次开源了
  10. SRLTE跟CSFB语音方案流程上差异