hadoop配置文件及分布式搭建

Hadoop分布式搭建

一、配置文件说明
1、所有配置文件

文件名格式描述
hadoop-env.shBash脚本脚本中要用到的环境变量,以运行Hadoop
mapred-env.shBash脚本脚本中要用到的环境变量,以运行MapReduce(覆盖hadoop-env.sh中设置的变量)
yarn-env.shBash脚本脚本中要用到的环境变量,以运行YARN(覆盖hadoop-env.sh中设置的变量)
core-site.xmlHadoop配置XMLHadoop Core的配置项,例如HDFS、MapReduce和YARN常用的I/O设置等
hdfs-site.xmlHadoop配置XMLHadoop守护进程的HDFS配置项,包括namenode、辅助namenode和datanode等
mapred-site.xmlHadoop配置XMLMapReduce守护进程的mapreduce配置项,包括作业历史服务器
yarn-site.xmlHadoop配置XMLYARN守护进程的yarn配置项,包括resourcemanager、web应用代理服务器和nodemanager
slaves纯文本运行datanode和节点管理器的机器列表(每行一个)
hadoop-metrics2.propertiesJava属性控制如何在Hadoop上发布度量的属性
mapred-env.shJava属性系统日志文件、namenode审计日志、任务JVM进程的任务日志的属性
hadoop-policy.xmlHadoop配置XML安全模式下运行Hadoop时的访问控制列表的配置项

2、环境变量配置文件:hadoop-env.sh、mapred-env.sh、yarn-env.sh

属性意义
JAVA_HOME需要设置Hadoop系统的Java安装的位置。方法一是在hadoop-env.sh文件中设置JAVA_HOME项;方法二是在shell中设置JAVA_HOME环境变量。相比之下,方法一更好,因为只需操作一次就能够保证整个集群使用同一版本的Java。
HADOOP_HEAPSIZE为各个守护进程分配的内存,单位为MB,如果不设置默认值是1000。
HADOOP_LOG_DIR系统日志文件存放目录,默认在$HADOOP_HOME/logs。建议修改默认设置,使之独立于Hadoop的安装目录,这样即使Hadoop升级之后安装路径发生变化,也不会影响日志文件的位置。
HADOOP_SSH_OPTS设置SSH选项。

此处参考引用:Hadoop配置文件详解

二、搭建前准备
1、配置hadoop环境变量,此处略。

2、hadoop.x支持的Java版本,需进行安装指定版本java。

hadoop版本支持的java版本
Apache Hadoop 3.xjava8
Apache Hadoop 2.7.x–2.xjava7 & java8

3、配置环境变量文件,设置java路径。

$vim hadoop-env.sh、mapred-env.sh、yarn-env.sh
export JAVA_HOME=java_path

4、克隆虚拟机及配置静态ip(hadoop101,hadoop102,hadoop103)
(1)、克隆操作
右键指定虚拟机-管理-克隆-克隆完整虚拟机-设置路径。

(2)、重置每一台克隆的mac地址

//编辑虚拟机配置-网络适配器-NET模式,高级-mac地址,重新生成mac地址
$sudo vim /etc/rc.d/rc.local //编辑设置mac地址
ifconfig <ifname> down
ifonfig <ifname> hw ether <mac address>
ifconfig <ifname>  up

设置开机时自动运行该配置,修改当前mac地址

(3)关闭防火墙,设置静态ip

//关闭防火墙
$sudo systemctl stop firewalld

//设置静态ip(利用nmcli或者直接编辑/etc/sysconfig/netwwork-scripts/ifcfg-name)
//需要查看虚拟机网关和子域:编辑--编辑网络虚拟器
$sudo nmcli connection modify <ifname> ipv4.address address/prefix ipv4.dns address ipv4.gateway address #编辑ip
$sudo vim /etc/sysconfig/netwwork-scripts/ifcfg-name #设置PROTOCOL=static,在ifcfg中编辑
$sudo systemctl stop NetworkManager.service
$sudo systemctl restart network.service
$sudo systemctl start NetworkManager.service #重启网络,如若没有network.service,可直接reboot重启

5、配置主机名并连接到ip

$sudo nmcli general hostname <hostname>
$sudo vim /etc/sysconfig/network
#加入
NETWORKING=yes
HOSTNAME=<hostname>
$sudo vim /etc/hosts
#加入要添加的地址及主机名
address1 hadoop101
address2 hadoop102
address3 hadoop103

6、配置ssh

$yum install -y sshd ssh  #安装ssh服务
$sudo ssh-keygen -r -rsa #产生密钥,直接全部按enter键,如有特殊配置,请进行相关配置
$sudo ssh-copy-id user@address #将公钥传输给指定的用户及用户地址,此时需要目标用户密码
$sudo ssh user@address #连接指定的主机
//本地主机自身也要进行copy-id

7、配置时间同步chronyd,均在局域网192.168.214.x下
(1)、服务器主机

$vim /etc/chrony.conf
server 127.0.0.1 iburst //此处pool修改为这个,表示同步源
#allow 192.168.0.0/16
allow all   //允许哪些或者哪些区域端主机连接
makestep 1.0 3  //如果偏差超过1s,则进行修改同步
local stratum 10 //即便没有同步时间源,根据服务器进行同步

(2)、其他主机

$vim /etc/chrony.conf
server 192.168.214.101 iburst //此处pool修改为这个,表示同步源,此处,根据自己情况设定的服务器主机的ip地址修改
#allow 192.168.0.0/16
allow all   //允许哪些或者哪些区域端主机连接
makestep 1.0 3  //如果偏差超过1s,则进行修改同步
local stratum 10 //即便没有同步时间源,根据服务器进行同步

//命令行查看
$sudo timedatectl -a //查看同步状况
$sudo timedatectl set-timezone Asia/Shanghai //设置时区
$sudo systemctl restart chronyd //重置同步服务
$sudo chronyc source -v //显示同步源 ,^*表示正常同步,+表示当前的同步源

8、编写文件同步脚本

#! bin/bash
num=$#
if(($num==0));then
        echo no args;
        exit;
fi

p1=$1
path=`cd -P $(dirname $p1);pwd`
name="root"
for((host=102;host<=103;host++));
do
        echo -------------------copy hadoop$host-----------------------;
        rsync(scp) -rvf $p1 $name@hadoop$host:$path; #此处要么选同步rsync,要么复制,可创建两个文件
done
echo -----------------------finished------------------------

三、各种分布式模式配置文件设置(先规划后配置,以hadoop101作为服务器主机,hadoop102,hadoop103)


【本地模式、伪分布式、完全分布式】基本配置

配置文件属性本地模式伪分布式完全分布式(单点)
core-site.xmlfs.defaultFs
hadoop.tmp.dir
file:///
hadoop-path/data/tmp
hdfs://localhost/
hadoop-path/data/tmp
hdfs://namenode:9000
hadoop-path/data/tmp
hdfs-site.xmldfs.replication
dfs.namenode.secondary.http-address
dfs.namenode.name.dir
dfs.datanode.data.dir
N/A
N/A
file:/namenode-path
file:/datanode-path
1
secondary_host:50090
file:/namenode-path
file:/datanode-path
3
secondary_host:50090
file:/namenode-path
file:/datanode-path
mapred-site.xmlmapreduce.framework.name
mapreduce.jobhistory.address
mapreduce.jobhistory.webapp.address
local
N/A
N/A
yarn
jobhistoty_host:10020
jobhistory_host:19888
yarn
jobhistoty_host:10020
jobhistory_host:19888
yarn-site.xmlyarn.resourcemanager.hostname
yarn.nodemanager.auxservice
yarn.log-aggregation-enable
yarn.log-aggregation.retain-seconds
N/A
N/A
N/A
N/A
localhost
mapreduce_shuffle
true
604800(可任意设定/s)
resourcemanager
mapreduce_shuffle true
604800(可任意设定/s)

【web端查看汇总】

Daemonweb-interfaceport
Namenodehttp://namnode:port/port:50070
Resourcemanagerhttp://resourcemanager:portport:8088
MapReduce JobHistory Serverhttp://jobhistory_host:port/port:19888

此处引自Hadoop配置文件参数详解


1、单机模式
根据以上简易配置。此时filesystem位于本地文件系统。
【部署规划xml】

Host nameName NodeData NodeSecondary NamenodeResource ManagerNode ManagerJournal NodeZKFCZookeeperHistory Service
hadoop100locallocal

【使用wordcount案例】

#创建了input文件夹,放入要分析的文件,未创建output文件夹
$hadoop jar hadoop-path/share/hadoop/mapreduce/hadoop-mapreduce-examples-xxx.jar wordcount input output
$cat output/part-r-00000 //查看输出内容


2、伪分布式
【部署规划xml】

Host nameName NodeData NodeSecondary NamenodeResource ManagerNode ManagerJournal NodeZKFCZookeeperHistory Service
hadoop101

【格式化&启动】
同完全分布式(单点)

3、完全分布式(单点)
【部署规划xml】

Host nameName NodeData NodeSecondary NamenodeResource ManagerNode ManagerJournal NodeZKFCZookeeperHistory Service
hadoop101
hadoop102
hadoop103

【节点配置,自动配置DataNode、NodeManager】

$vim slaves  //此处针对hadoop2.x
$vim workers //此处针对hadoop3.x
#默认已经存在文件,若存在其一,只需要修改其中一个即可,否则datanode,nodemanager不启动
#增加如下内容,默认只存在localhost,否则搭建会报localhost:ssh:connection to port 22 refused.
hadoop101
hadoop102
hadoop103

【伪分布模式以及完全分布式(单点)集群初始化与启动】
[初始化集群操作]

$bin/hdfs namenode -format #要在每个Namenode主机上均进行格式化,或者根据需求进行。
"""
不能一直格式化?
格式化Namenode,会长生新的集群id,导致Namenode和datanode的集群id不一致,
集群找不到以往数据。格式化NameNode时,一定要先删除data数据和log日志,
再格式化NameNode。
"""
//查看NameNode id 和DataNode id.
$cat hadoop-path/data/tmp/dfs/name/current/VERSION //查看NameNode id
$cat hadoop-path/data/tmp/dfs/data/current/VERSION //查看DataNode id

[启动/关闭集群]

"""
各个服务组件逐一启动/关闭
"""
$sbin/hadoop-daemon.sh start/stop namenode/datanode/secondarynamenode //启动或关闭HDFS组件
$sbin/yarn-daemon.sh start/stop resourcemanager/nodemanager //启动或关闭YARN组件
$sbin/mr-jobhistory-daemon.sh start/stop historyserver //启动日志聚集、历史服务器功能(要在配置的主机上启动停止)
"""
各个模块分开启动/关闭(ssh配置前提)
"""
$sbin/start-dfs.sh / stop-dfs.sh //整体启动HDFS
$sbin/start-yarn.sh / stop-dfs.sh //整体启动YARN
$sbin/mr-jobhistory-daemon.sh start/stop historyserver //启动日志聚集、历史服务器功能(要在配置的主机上启动停止)
"""
整体启动
"""
$sbin/start-all.sh / stop-all.sh //整体启动、关闭
$sbin/mr-jobhistory-daemon.sh start/stop historyserver //启动日志聚集、历史服务器功能(要在配置的主机上启动停止)


4、完全分布式(HA)
HA:High Available(高可用模式)
【部署规划】

Host nameName NodeData NodeSecondary NamenodeResource ManagerNode ManagerJournal NodeZKFCZookeeperHistory Service
hadoop101
hadoop102
hadoop103

【Zookeeper集群部署】
[下载]:
官网首页: https://zookeeper.apache.org/
镜像下载地址: http://mirror.bit.edu.cn/apache/zookeeper/

[部署规划]:

hostnameZookeeperJDK
hadoop101
hadoop102
hadoop103

[安装]:

$tar -zxvf zookeeper-x.xx.xx.tar.gz -C <path> //解压到指定目录path下
$mkdir -P <path>/Data //载path内创建Data目录
$mv <path>/conf/zoo_sample.cfg <path>/conf/zoo.cfg //重命名配置文件
$vim /etc/profile //配置环境变量,将bin放入环境变量中

[集群配置]

$vim <path>/conf/zoo.cfg //修改zoo.cfg配置文件
#dataDir=/opt/module/zookeeper-3.4.12/Data
#dataLogDir=/opt/module/zookeeper-3.4.12/logs //修改DateDir,添加日志存放目录
#末尾增加
#server.1=hadoop101:2888:3888
#server.2=hadoop102:2888:3888
#server.3=hadoop103:2888:3888
$touch <path>/Data/myid
#此处分发配置/etc/profile、<path>给各个节点
$echo i > <path>/Data/myid //在各个主机上根据编号输入i进入myid
$zkServer.sh start/stop //分别在各个主机上启动或停止集群
$zkServer.sh status //分别在各个主机上查看集群状态

A是一个数字,表示这个是第几号服务器;
B是这个服务器的ip地址;
C是这个服务器与集群中的Leader服务器交换信息的端口;
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

1)tickTime=2000:通信心跳数tickTime:通信心跳数,Zookeeper服务器心跳时间,单位毫秒Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)

2)initLimit=10:LF初始通信时限集群中的follower跟随者服务器(F)与leader领导者服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。投票选举新leader的初始化时间Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在initLimit时间内完成这个工作。

3)syncLimit=5:LF同步通信时限集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那收到响应,那么就认为这个F已经不在线了。

4)dataDir:数据文件目录+数据持久化路径保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。

5)clientPort=2181:客户端连接端口监听客户端连接的端口

[客户端使用]:

$zkCli.sh //启动客户端
$help //查看所有操作指令
$ls / //查看znode当前包含的内容
$ls2 / //查看当前节点数据并能看到更新次数等数据
$create <path> "aa" //创建普通节点
$get <path> //获得节点的值
$create -e /app 8888 //创建短暂节点,可利用重启,再次查看ls /
$create /app "app"
$create -s /app/aa 888 //创建普通的根节点app再创建序号节点aa,如果原节点下有1个同名同序号节点,则再排序时从1开始,以此类推
$set /opt 999 //修改节点数据
$get /opt watch //再hadoop102注册监听hadoop101的opt节点,对hadoop101的opt节点修改数据,可以进行监听到
$ls /opt watch //在hadoop101主机上注册监听/opt节点的子节点变化,增加子节点时,会有变化
$delete /opt/bb //删除节点
$rmr /opt //递归删除节点
$stat /app //查看节点状态
$quit //退出客户点

CentOS7.5搭建Zookeeper3.4.12集群与命令行操作


【环境配置】

$vim hadoop-env.sh //加入以下内容
export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root 
export HDFS_DATANODE_SECURE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export HADOOP_SHELL_EXECNAME=root #上述设置为srat-dfs.sh启动时报错
export HADOOP_SSH_OPTS="-p 22" #针对于ssh port 22 connected refused
#可能出现的问题 yum install -y openssh-server openssh-clients
export JSVC_HOME=/opt/module/hadoop-3.2.2/libexec/
"""
此处需要安装jsvc:hadoop3.x使用hadoop-daemon.sh启动datanode会报错。
源码:https://downloads.apache.org//commons/daemon/source/commons-daemon-1.2.4-src.tar.gz
进入src/native/unix/-->./configure-->make-->移动jsvc到libexec
安装包:http://downloads.apache.org/commons/daemon/binaries/commons-daemon-1.2.4-bin.tar.gz
进入share//hadoop/hdfs/libs/替换相应版本commons-daemon.xx.jar
"""
$vim yarn-env.sh
export YARN_RESOURCEMANAGER_USER=root
export HADOOP_SECURE_DN_USER=yarn
export YARN_NODEMANAGER_USER=root

【Hadoop-HA模式配置xml】
[HDFS-HA基本配置]
core-site.xml

属性解释
fs.defaultFshttp://mycluster将两个namenode组装成一个mycluster
hadoop.tmp.dirpath/data/ha/tmp指定hadoop运行时产生文件的存储目录
ipc.client.connect.max.retries100表示namenode连接journalnode次数,一般启动hdfs为2min左右,在namnode启动时会尝试连接journalnode,由于start-dfs.sh先启动Namnode,会发生准备连接结束再启动journalnode,导致Namenode启动后关闭
ipc.client.connect.retry.interval10000namenode连接的间隔,毫秒

hdfs-site.xml

属性解释
dfs.replication3hdfs副本数
dfs.nameservicesmycluster完全分布式集群名称
dfs.ha.namenodes.myclusternn1,nn2namenode节点有哪些
dfs.namenode.rpc-address.
mycluster.nn1
hadoop101:8020nn1-RPC通信地址
dfs.namenode.rpc-address.
mycluster.nn2
hadoop102:8020nn2-RPC通信地址
dfs.namenode.http-address.
mycluster.nn1
hadoop101:50070nn1-http通信地址
dfs.namenode.http-address.
mycluster.nn2
hadoop102:50070nn2-http通信地址
dfs.namenode.shared.edits.dirqjournal://hadoop101:8485,hadoop
102:8485,hadoop103:8485/mycluster
Namenode元数据在JournalNode上的存放位置
dfs.ha.fencing.methodssshfence
shell(/bin/true)
隔离机制,同一时刻只能有一台服务器对外响应,同时启动其中某一台宕机时检测并相应转换
dfs.ha.fencing.ssh.private-key-files/home/usr(/root)/.ssh/id_rsa使用隔离机制时需要ssh无秘钥登录
dfs.journalnode.edits.dirhadoop-path//data/ha/jn声明journalnode服务器存储目录
dfs.permissions.enablefalse关闭权限检查
dfs.client.failover.proxy.provider.myclusterorg.apache.hadoop.hdfs.server.namenode.ha.
ConfiguredFailoverProxyProvider
访问代理类:client,mycluster,active配置失败自动切换实现方式

[设置故障自动转移]
core-site.xml

属性解释
ha.zookeeper.quorumhadoop101:2181,hadoop102:2181,hadoop:2181指定ZKFC故障自动切换转移

hdfs-site.xml

属性解释
dfs.ha.automatic-failover.enabledtrue配置自动故障转移

[YARN-HA模式基本配置]
yarn-site.xml

属性解释
yarn.nodemanager.aux-servicesmapreduce_shufflereducer获取数据的方式
yarn.resourcemanager.ha.enabledtrue启用resourcemanager ha
yarn.resourcemanager.cluster-idrmCluster声明两台resourcemanager的地址
yarn.resourcemanager.ha.rm-idsrm1,rm2
yarn.resourcemanager.hostname.rm1hadoop102
yarn.resourcemanager.hostname.rm2hadoop103
yarn.resourcemanager.zk-addresshadoop101:2181,
hadoop102:2181,
hadoop103:2181
指定zookeeper集群的地址
yarn.resourcemanager.recovery.enabledtrue启用自动恢复
yarn.resourcemanager.store.classorg.apache.hadoop.yarn.server.
resourcemanager.recovery.ZKRMStateStore
指定resourcemanager的状态信息存储在zookeeper集群

[mapred基本配置xml]
mapred-site.xml

属性解释
mapreduce.framework.nameyarn指定mr框架为yarn方式
mapreduce.jobhistory.addresshadoop101:10020指定mr历史服务器主机,端口
mapreduce.jobhistory.webapp.addresshadoop101;19888指定mr历史服务器WebUI主机,端口
mapreduce.jobhistory.joblist.cache.size20000历史服务器的WEB UI上最多显示20000个历史的作业记录信息
mapreduce.jobhistory.done-dir${yarn.app.mapreduce.am.staging-dir}/history/done配置作业运行日志
mapreduce.jobhistory.intermediate-done-dir${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate
yarn.app.mapreduce.am.staging-dir/tmp/hadoop-yarn/staging

【节点配置】

$vim slaves  //此处针对hadoop2.x
$vim workers //此处针对hadoop3.x
#默认已经存在文件,若存在其一,只需要修改其中一个即可,否则datanode,nodemanager不启动
#增加如下内容,默认只存在localhost,否则搭建会报localhost:ssh:connection to port 22 refused.
hadoop101
hadoop102
hadoop103

【Hadoop HA集群的初始化】

$zkServer.sh start //启动各台主机的zookeeper,启动zookeeper集群,一定关闭防火墙,查看启动状态
$hadoop-daemon.sh start journalnode //在各个journalnode节点上启动journalnode
$hdfs namenode -format //选取一台namenode节点上格式化Namenode(清除数据和日志后),令其为nn1
$hadoop-daemon.sh start/stop namenode //在nn1上启动(首先成为一个active)
#此时,在nn1上的journal node存储目录data/ha/jn产生集群id信息,同时也会在hadoop运行存储目录产生相关信息
$hdfs namenode -bootstrapStandby //在其余namnode节点上同步nn1的元数据管理信息
$hadoop-daemon.sh start namenode //在其余节点启动Namenode
$hadoop-daemon.sh start datanode //启动所有的datanode
$stop-dfs.sh  //关闭所有hdfs服务
$hdfs zkfc -formatZK //在每台namenode上初始化ZKFC组件,此时会产生一个hadoop-ha目录
$zkServer.sh stop //关闭各台主机的zookeeper,关闭zookeeper集群
#初始化完毕

【Hadoop HA集群的启动和关闭】

#启动zookeeper集群,分别在各个主机上启动,一定关闭防火墙,查看启动状态
$zkServer.sh start //启动各台主机的zookeeper,启动zookeeper集群

#启动HDFS
$start-dfs.sh //在主备namenode中随便选一台启动HDFS服务,自动设置了active节点
#手动改变active namenode
$hdfs haadmin -transitionToActive nn1 --forcemanual //强制nn1节点转变为active
$hdfs haadmin -getServiceState nn1 //查看nn1的激活状态
#查看各个节点进程启动是否正常,如果某些节点的某些进程没开启,需要手动开启
$jps //Namenode,Datanode,JournalNode,DFSZKFailoverContraller,QuorumPeerMain

#启动yarn
$start-yarn.sh //在主备resourcemanager中随便选一台启动yarn服务 
#手动改变active
$yarn rmadmin -transitionToActive rmx --forcemanual //强制将rmx中resourcemanager设为激活状态
$yarn rmadmin -getServiceState rmx //查看rmx中resourcemanager的激活状态
#查看节点进程启动是否正常,如果某些节点的某些进程没开启,需要手动开启
$jps //ResourceManager,NodeManager

#启动日志聚集
$mr-jobhistory-daemon.sh start historyserver

"""
手动启动HDFS模式
#hadoop-daemon.sh // hdfs --daemon(hadoop3.x)
#yarn-daemon.sh //yarn --daemon(hadoop3.x)
#mr-jobhistory-daemon.sh //mapred --daemon(hadoop3.x)
"""
#对于停止操作,则是反过来的操作
**************
重置,重新格式化
1、删除所有节点data/ha、logs/*
2、删除zookeeper中的节点
$zkCli.sh    #开启客户端
$ls / 		#查看对应节点
$deleteall /xxx #删除对应节点
$quit

【验证与问题】

#验证操作
1.1、验证HDFS-HA中namenode的HA模式:kill进程
$kill -9 namenode的进程id
$service network stop //此两种方法均为阻断进程
$hdfs haadmin -getServiceState nn1 //查看另一个节点的active状态以及web状态
1.2、验证HDFS-HA中的namenode的HA模式:上传/下载大文件
"找一个比较大的文件,hadoop103进行文件上传操作,5秒钟的时候干掉Hadoop101 active状态的namenode,看看文件是否能上传成功"

2.1、验证YARN-HA中resourcemanager的HA模式:kill进程
"与HDFS同样验证"
2.2、验证YARN-HA中resourcemanager的HA模式:执行WordCount操作
"hadoop101执行wordcount操作,中途断掉hadoop102的resourcemanager的active状态,查看执行状态"

#问题1:logs日志出现,“does not contain a valid host:port authority”
将显示的对应配置的host更改为真实的ip地址
#问题2:Standby所在的namenode不会自动切换为active状态。
$yum install -y psmisc //Linux系统没有 fuser 命令,主备切换是执行 fuser 失败了,报 fuser: command not found
//修改权限hdfs-site.xml
<name>dfs.ha.fencing.methods</name>
          <value>
                   sshfence
                   shell(/bin/true)
          </value>
 #问题3:namenode启动后关闭,设置连接尝试次数
 见core-site.xml

CentOS7.5搭建Hadoop2.7.6完全分布式集群
ZooKeeper学习之路 (九)利用ZooKeeper搭建Hadoop的HA集群


【HA概述:HDFS-HA与YARN-HA】

HDFS HA和Yarn HA架构的概念和区别


四、操作集群
1、文件系统hdfs操作指令

$hadoop dfs -put localfile dfsfile //将文件上传到hdfs
$hadoop dfs -get dfsfile  localpath //将文件从hdfs上下载下来 
$hadoop dfs -mv [options] //剪切修改文件名
$hadoop dfs -mkdir [options] //创建目录
$hadoop dfs -cp [options] //复制操作
$hadoop dfs -touch [options] //创建文件
$hadoop dfs -rm [options] //删除文件

2、hadoop操作指令

$hadoop checknative //查看源码编译结果
$hadoop jar [jarfile] [jarclass] [input_file_or_diretory] [output_diretory] //执行mapred操作,执行任务

五、XML hadoop分布式配置属性(其他属性及值)
1、core-site.xml

属性解释

2、hdfs-site.xml

属性解释

3、mapred.xml

属性解释

4、yarn-site.xml

属性解释
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值