Hadoop分布式搭建

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

文件名

格式

描述


Bash脚本

脚本中要用到的环境变量,以运行Hadoop


Bash脚本

脚本中要用到的环境变量,以运行MapReduce(覆盖中设置的变量)


Bash脚本

脚本中要用到的环境变量,以运行YARN(覆盖中设置的变量)

core-site.xml

Hadoop配置XML

Hadoop Core的配置项,例如HDFS、MapReduce和YARN常用的I/O设置等

hdfs-site.xml

Hadoop配置XML

Hadoop守护进程的HDFS配置项,包括namenode、辅助namenode和datanode等

mapred-site.xml

Hadoop配置XML

MapReduce守护进程的mapreduce配置项,包括作业历史服务器

yarn-site.xml

Hadoop配置XML

YARN守护进程的yarn配置项,包括resourcemanager、web应用代理服务器和nodemanager

slaves

纯文本

运行datanode和节点管理器的机器列表(每行一个)

hadoop-metrics2.properties

Java属性

控制如何在Hadoop上发布度量的属性


Java属性

系统日志文件、namenode审计日志、任务JVM进程的任务日志的属性

hadoop-policy.xml

Hadoop配置XML

安全模式下运行Hadoop时的访问控制列表的配置项

2、环境变量配置文件:、、

属性

意义

JAVA_HOME

需要设置Hadoop系统的Java安装的位置。方法一是在文件中设置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.x

java8

Apache Hadoop 2.7.x–2.x

java7 & java8

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

$vim 、、
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.xml

fs.defaultFs

hadoop.tmp.dir

file:///

hadoop-path/data/tmp

hdfs://localhost/

hadoop-path/data/tmp

hdfs://namenode:9000

hadoop-path/data/tmp

hdfs-site.xml

dfs.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.xml

mapreduce.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.xml

yarn.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端查看汇总】

Daemon

web-interface

port

Namenode

http://namnode:port/

port:50070

Resourcemanager

http://resourcemanager:port

port:8088

MapReduce JobHistory Server

http://jobhistory_host:port/

port:19888

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


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

Host name

Name Node

Data Node

Secondary Namenode

Resource Manager

Node Manager

Journal Node

ZKFC

Zookeeper

History Service

hadoop100

local

local

【使用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 name

Name Node

Data Node

Secondary Namenode

Resource Manager

Node Manager

Journal Node

ZKFC

Zookeeper

History Service

hadoop101



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

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

Host name

Name Node

Data Node

Secondary Namenode

Resource Manager

Node Manager

Journal Node

ZKFC

Zookeeper

History 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/ start/stop namenode/datanode/secondarynamenode //启动或关闭HDFS组件
$sbin/ start/stop resourcemanager/nodemanager //启动或关闭YARN组件
$sbin/ start/stop historyserver //启动日志聚集、历史服务器功能(要在配置的主机上启动停止)
"""
各个模块分开启动/关闭(ssh配置前提)
"""
$sbin/ /  //整体启动HDFS
$sbin/ /  //整体启动YARN
$sbin/ start/stop historyserver //启动日志聚集、历史服务器功能(要在配置的主机上启动停止)
"""
整体启动
"""
$sbin/ /  //整体启动、关闭
$sbin/ start/stop historyserver //启动日志聚集、历史服务器功能(要在配置的主机上启动停止)


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

Host name

Name Node

Data Node

Secondary Namenode

Resource Manager

Node Manager

Journal Node

ZKFC

Zookeeper

History Service

hadoop101








hadoop102








hadoop103







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

[部署规划]:

hostname

Zookeeper

JDK

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
$ start/stop //分别在各个主机上启动或停止集群
$ 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:客户端连接端口监听客户端连接的端口

[客户端使用]:

$ //启动客户端
$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  //加入以下内容
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使用启动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 
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.defaultFs

http://mycluster

将两个namenode组装成一个mycluster

hadoop.tmp.dir

path/data/ha/tmp

指定hadoop运行时产生文件的存储目录

ipc.client.connect.max.retries

100

表示namenode连接journalnode次数,一般启动hdfs为2min左右,在namnode启动时会尝试连接journalnode,由于先启动Namnode,会发生准备连接结束再启动journalnode,导致Namenode启动后关闭

ipc.client.connect.retry.interval

10000

namenode连接的间隔,毫秒

hdfs-site.xml

属性


解释

dfs.replication

3

hdfs副本数

dfs.nameservices

mycluster

完全分布式集群名称

dfs.ha.namenodes.mycluster

nn1,nn2

namenode节点有哪些

dfs.namenode.rpc-address.

mycluster.nn1

hadoop101:8020

nn1-RPC通信地址

dfs.namenode.rpc-address.

mycluster.nn2

hadoop102:8020

nn2-RPC通信地址

dfs.namenode.http-address.

mycluster.nn1

hadoop101:50070

nn1-http通信地址

dfs.namenode.http-address.

mycluster.nn2

hadoop102:50070

nn2-http通信地址

dfs.namenode.shared.edits.dir

qjournal://hadoop101:8485,hadoop

102:8485,hadoop103:8485/mycluster

Namenode元数据在JournalNode上的存放位置

dfs.ha.fencing.methods

sshfence

shell(/bin/true)

隔离机制,同一时刻只能有一台服务器对外响应,同时启动其中某一台宕机时检测并相应转换

dfs.ha.fencing.ssh.private-key-files

/home/usr(/root)/.ssh/id_rsa

使用隔离机制时需要ssh无秘钥登录

dfs.journalnode.edits.dir

hadoop-path//data/ha/jn

声明journalnode服务器存储目录

dfs.permissions.enable

false

关闭权限检查

dfs.client.failover.proxy.provider.mycluster

org.apache.hadoop.hdfs.server.namenode.ha.

ConfiguredFailoverProxyProvider

访问代理类:client,mycluster,active配置失败自动切换实现方式

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

属性


解释

ha.zookeeper.quorum

hadoop101:2181,hadoop102:2181,hadoop:2181

指定ZKFC故障自动切换转移

hdfs-site.xml

属性


解释

dfs.ha.automatic-failover.enabled

true

配置自动故障转移

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

属性


解释

yarn.nodemanager.aux-services

mapreduce_shuffle

reducer获取数据的方式

yarn.resourcemanager.ha.enabled

true

启用resourcemanager ha

yarn.resourcemanager.cluster-id

rmCluster

声明两台resourcemanager的地址

yarn.resourcemanager.ha.rm-ids

rm1,rm2

yarn.resourcemanager.hostname.rm1

hadoop102

yarn.resourcemanager.hostname.rm2

hadoop103

yarn.resourcemanager.zk-address

hadoop101:2181,

hadoop102:2181,

hadoop103:2181

指定zookeeper集群的地址

yarn.resourcemanager.recovery.enabled

true

启用自动恢复

yarn.resourcemanager.store.class

org.apache.hadoop.yarn.server.

resourcemanager.recovery.ZKRMStateStore

指定resourcemanager的状态信息存储在zookeeper集群

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

属性


解释

mapreduce.framework.name

yarn

指定mr框架为yarn方式

mapreduce.jobhistory.address

hadoop101:10020

指定mr历史服务器主机,端口

mapreduce.jobhistory.webapp.address

hadoop101;19888

指定mr历史服务器WebUI主机,端口

mapreduce.jobhistory.joblist.cache.size

20000

历史服务器的WEB UI上最多显示20000个历史的作业记录信息

mapreduce.jobhistory.done-dir

${.staging-dir}/history/done

配置作业运行日志

mapreduce.jobhistory.intermediate-done-dir

${.staging-dir}/history/done_intermediate

.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集群的初始化】

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

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

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

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

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

#启动日志聚集
$ start historyserver

"""
手动启动HDFS模式
# // hdfs --daemon(hadoop3.x)
# //yarn --daemon(hadoop3.x)
# //mapred --daemon(hadoop3.x)
"""
#对于停止操作,则是反过来的操作
**************
重置,重新格式化
1、删除所有节点data/ha、logs/*
2、删除zookeeper中的节点
$    #开启客户端
$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

属性


解释