文章目录
- 一、Hadoop完全分布式搭建(Centos 7系统)
- 1、关闭防火墙
- 2、设置主机名
- 3、配置主机名映射hosts文件
- 3、设置静态IP
- 4、配置jdk环境变量
- 5、配置SSH免密登录
- 6、配置Hadoop环境变量
- 7、修改Hadoop配置文件
- 8、分发文件
- 9、格式化namenode
- 10、启动集群并测试
- 二、Hadoop安装zookeeper(Centos 7系统)
- 1、安装zookeeper
- 2、配置环境变量
- 3、更改文件名字zoo.cfg
- 4、修改zoo.cfg配置文件
- 6、分发zookeeper
- 7、zookeeper基本命令
- 三、Hadoop高可用搭建(Centos 7系统)
- 1、修改配置文件
- 2、分发文件
- 3、第一次启动顺序
- 3、其次启动顺序
- 4、查看节点个数
一、Hadoop完全分布式搭建(Centos 7系统)
1、关闭防火墙
systemctl stop firewalld #关闭防火墙 systemctl start firewalld #开启防火墙 systemctl disable firewalld #设置开机禁用防火墙 systemctl enable firewalld #设置开机启用防火墙 systemctl status firewalld #查看防火墙状态
2、设置主机名
hostnamectl set-hostname master && bash #设置主机名为master,立即生效. hostnamectl set-hostname worker1 && bash #设置主机名为worker1,立即生效. hostnamectl set-hostname worker2 && bash #设置主机名为worker2,立即生效.
3、配置主机名映射hosts文件
vim /etc/hosts #进入hosts文件 192.168.10.100 master #IP地址 主机名 192.168.10.101 worker1 #IP地址 主机名 192.168.10.102 worker2 #IP地址 主机名
3、设置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33 #进入配置IP文件 TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="dhcp" #改为static DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="29eb0e94-b7d2-445a-93d9-d6755d24f55a" DEVICE="ens33" ONBOOT="no" #改为yes IPADDR=192.168.10.100 #设置静态IP GATEWAY=192.168.10.2 #配置网关 DNS1=192.168.10.2 #配置DNS systemctl restart network #重启网络服务
4、配置jdk环境变量
vim /etc/profile #进入环境变量配置文件 #添加以下内容-------------------- export JAVA_HOME=/opt/jdk1.8.0 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin #--------------------------------- source /etc/profile #使用source命令你个使配置文件生效
5、配置SSH免密登录
ssh-keygen -t rsa #在主节点使用命令,一直按回车 ssh-copy-id worker1 #将公共密钥填充到另一个节点worker1上 ssh-copy-id worker2 #将公共密钥填充到另一个节点wokrer2上 ssh worker1 #验证是否免密成功 ssh worker2 #验证是否免密成功
6、配置Hadoop环境变量
vim /etc/profile #进入环境变量配置文件 #添加以下内容-------------------- export HADOOP_HOME=/opt/hadoop3.3.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin #--------------------------------- source /etc/profile #使用source使配置文件生效
7、修改Hadoop配置文件
配置文件路径在hadoop中etc文件夹
修改hadoop-env.sh
export JAVA_HOME=/usr/local/program/jdk8 #jdk文件路径 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_ZKFC_USER=root export HDFS_JOURNALNODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
修改core-site.xml文件
fs.defaultFS hdfs://master:9000 hadoop.tmp.dir file:/opt/app/hadoop/tmp hadoop.http.staticuser.user root 修改hdfs-site.xml
dfs.namenode.name.dir /usr/hadoop3/hdfs/name dfs.datanode.data.dir /usr/hadoop3/hdfs/data dfs.replication 3 dfs.namenode.http-address master:9870 dfs.namenode.secondary.http-address master:9868 dfs.permissions.enalbed false 修改yarn-site.xml
yarn.resourcemanager.hostname master yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.vmem-check-enabled false 修改mapred-site.xml
mapreduce.framework.name yarn mapreduce.application.classpath /opt/hadoop3.3.6/share/hadoop/mapreduce/*:/opt/hadoop-3.3.6/share/hadoop/mapreduce/lib/* 修改workers
vim workers # 删掉里面的localhost,添加以下内容,你的两个从节点的ip映射 worker1 worker2
8、分发文件
# 分发jdk,$PWD:获取当前所在目录的绝对路径 scp -r jdk1.8.0_162 root@worker1:$PWD scp -r jdk1.8.0_162 root@worker2:$PWD # 分发hadoop scp -r hadoop-3.3.3 root@worker1:$PWD scp -r hadoop-3.3.3 root@worker2:$PWD # 分发/etc/hosts scp /etc/hosts root@worker1:/etc/ scp /etc/hosts root@worker2:/etc/ # 分发/etc/profile scp /etc/profile root@worker1:/etc/ scp /etc/profile root@worker2:/etc/ # 然后在两个从节点上执行 source /etc/profile
9、格式化namenode
hdfs namenode -format
10、启动集群并测试
# 启动hadoop start-all.sh # 查看进程 jps
主节点进程
ResourceManager NodeManager Jps DataNode SecondaryNameNode NameNode
从节点
DataNode NodeManager
从节点
DataNode NodeManager
二、Hadoop安装zookeeper(Centos 7系统)
1、安装zookeeper
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
2、配置环境变量
export ZK_HOME=/opt/zookeeper export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
3、更改文件名字zoo.cfg
cd conf #进入zookeep的conf文件夹 mv zoo-sample.cfg zoo.cfg #将zoo-sample.cfg改名为zoo.cfg
4、修改zoo.cfg配置文件
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=D:\zookeeper\data # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 ## Metrics Providers # # https://prometheus.io Metrics Exporter #metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider #metricsProvider.httpPort=7000 #metricsProvider.exportJvmInfo=true #server.1 = 主机ip(主机映射名):A:B #server.2 = 主机ip(主机映射名):A:B #server.3 = 主机ip(主机映射名):A:B server.1 = 主机ip(主机映射名):2888:3888 server.2 = 主机ip(主机映射名):2888:3888 server.3 = 主机ip(主机映射名):2888:3888
配置文件相关说明
tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。 initLimit:LF初始通信时限,集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。 syncLimit:LF同步通信时限,集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。 dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 clientPort:客户端连接端口,这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求 autopurge.snapRetainCount:保留数量。 autopurge.purgeInterval:清理时间间隔,单位:小时。 server.N = YYY:A:B,其中N表示服务器编号,YYY表示服务器的IP地址,A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)。一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时A端口和B端口不一样。
5、创建myid文件
#在dataDir=D:\zookeeper\data文件下创建myid vim myid #在myid中填写数字序号,序号和zoo.cfg中server序号相同
6、分发zookeeper
scp -r /opt/zookeeper/ root@worker1:/opt/ scp -r /opt/zookeeper/ root@worker2:/opt/
7、zookeeper基本命令
zkServe.sh start #开启zookeeper服务 zkServer.sh status #关闭zookeeper服务
三、Hadoop高可用搭建(Centos 7系统)
1、修改配置文件
修改core-site.xml
fs.defaultFS hdfs://my-hdfs hadoop.tmp.dir file:/opt/app/hadoop/tmp hadoop.http.staticuser.user root ha.zookeeper.quorum master:2181,worker1:2181,worker2:2181 修改hdfs-site.xml
dfs.nameservices my-hdfs dfs.ha.namenodes.my-hdfs nn1,nn2 dfs.namenode.rpc-address.my-hdfs.nn1 master:8020 dfs.namenode.rpc-address.my-hdfs.nn2 worker1:8020 dfs.namenode.http-address.my-hdfs.nn1 master:9870 dfs.namenode.http-address.my-hdfs.nn2 worker1:9870 dfs.namenode.shared.edits.dir qjournal://master:8485;worker1:8485;worker2:8485/my-hdfs dfs.journalnode.edits.dir /usr/local/program/hadoop/datas/qjm dfs.namenode.name.dir /usr/hadoop3/hdfs/name dfs.datanode.data.dir /usr/hadoop3/hdfs/data dfs.client.failover.proxy.provider.my-hdfs org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence shell(true) dfs.ha.fencing.ssh.private-key-files /root/.ssh/id_rsa dfs.ha.automatic-failover.enabled true dfs.replication 3 dfs.namenode.secondary.http-address master:9868 修改mapred-stie.xml
mapreduce.framework.name yarn mapreduce.application.classpath /opt/hadoop3.3.6/share/hadoop/mapreduce/*:/opt/hadoop-3.3.6/share/hadoop/mapreduce/lib/* mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888 mapreduce.jobhistory.done-dir /history/done mapreudce.jobhistory.intermediate.done-dir /history/done/done_intermediate yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=/usr/local/program/hadoop mapreduce.map.env HADOOP_MAPRED_HOME=/usr/local/program/hadoop mapreduce.reduce.env HADOOP_MAPRED_HOME=/usr/local/program/hadoop 修改yarn-site.xml文件
yarn.resourcemanager.ha.enabled true yarn.resourcemanager.cluster-id my-hdfs yarn.resourcemanager.ha.rm-ids rm1,rm2 yarn.resourcemanager.hostname.rm1 master yarn.resourcemanager.hostname.rm2 worker1 yarn.resourcemanager.webapp.address.rm1 master:8088 yarn.resourcemanager.webapp.address.rm2 worker1:8088 yarn.resourcemanager.zk-address master:2181,worker1:2181,worker2:2181 yarn.nodemanager.aux-services mapreduce_shuffle yarn.log-aggregation-enable true yarn.log.server.url http://master:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 86400 yarn.resourcemanager.recovery.enabled true yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore yarn.nodemanager.vmem-check-enabled false 2、分发文件
# 分发hadoop配置好的文件 scp -r /opt/hadoop/ root@worker1:/opt/ scp -r /opt/hadoop/ root@worker2:/opt/
3、第一次启动顺序
启动zookeeper
zkServer.sh start #三个节点都要启动 zkServer.sh status #查看状态受否正常
4、启动JournalNode
hdfs --daemon start journalnode #三个节点都要启动
5、格式化namenode
hdfs namenode -format #格式化namenode,主节点格式化 #格式化前清除目录数据,data文件,name文件
6、格式化ZKFC,启动ZKFC
hdfs zkfc -formatZK #格式化ZKFC,主节点格式化 hdfs --daemon start zkfc #启动ZKFC,主节点启动
7、启动namenode
hdfs --daemon start namenode #主节点启动
8、启动副节点namenode
hdfs namenode -bootstrapStandby #副节点启动namenode,同步namenode
9、启动其他节点
start-all.sh
3、其次启动顺序
hdfs --daemon start zkfc #主节点启动 zkServer.sh start #三个节点都要启动 start-all.sh start #主节点启动
4、查看节点个数
主节点
[root@node001 hadoop]# jps 18946 QuorumPeerMain 25123 NameNode 26628 DFSZKFailoverController 26182 DataNode 27368 ResourceManager 27561 NodeManager 24666 JournalNode 27965 Jps
副节点
[root@node002 hadoop]# jps 26515 Jps 25939 NameNode 21860 QuorumPeerMain 26055 DataNode 26217 DFSZKFailoverController 26398 NodeManager 25247 JournalNode
其它节点
[root@node003 hadoop]# jps 28421 NodeManager 27783 DataNode 28727 Jps 24650 QuorumPeerMain 27583 JournalNode
猜你喜欢
- 3小时前Modbus协议学习第三篇之协议通信规则
- 3小时前前端实现(excel)xlsx文件预览
- 3小时前VUE登录注册页面,完整vue,直接复制
- 3小时前阿里云OSS存储图片在上传的时候设置过期时间
- 3小时前部署YUM仓库及NFS共享存储
- 3小时前【论文阅读】Deep Graph Contrastive Representation Learning
- 3小时前【车载开发系列】诊断故障码DTC中的扩展数据信息
- 3小时前将网页数据读入数据库+将数据库数据读出到网页——基于python flask实现网页与数据库的交互连接【全网最全】
- 3小时前【HarmonyOS】深入了解 ArkUI 的动画交互以提高用户体验
- 3小时前前端超好玩的小游戏合集来啦--周末两天用html5做一个3D飞行兔子萝卜小游戏
网友评论
- 搜索
- 最新文章
- 热门文章