大数据技术之Hadoop(生产调优手册)

Posted @从一到无穷大

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据技术之Hadoop(生产调优手册)相关的知识,希望对你有一定的参考价值。

文章目录


1 HDFS—核心参数

1.1 NameNode 内存生产配置

(1)NameNode 内存计算
每个文件块大概占用 150byte,一台服务器 128G内存为例,能存储多少文件块呢?
128 * 128 * 1024 * 1024 / 150Byte ≈ 9.1亿
G MB KB Byte
(2)Hadoop2.x系列, 配置 NameNode内存
NameNode内存默认 2000m,如果服务器内存 4G NameNode内存可以配置 3g。在hadoop-env.sh文件中配置如下。

HADOOP_NAMENODE_OPTS= Xmx 3072 m

(3)Hadoop3.x系列,配置NameNode 内存
hadoop-env.sh中描述 Hadoop的内存是动态分配的

# The maximum amount of heap to use (Java -Xmx).  If no unit
# is provided, it will be converted to MB.  Daemons will
# prefer any Xmx setting in their respective _OPT variable.
# There is no default; the JVM will autoscale based upon machine
# memory size.
# export HADOOP_HEAPSIZE_MAX=

# The minimum amount of heap to use (Java -Xms).  If no unit
# is provided, it will be converted to MB.  Daemons will
# prefer any Xms setting in their respective _OPT variable.
# There is no default; the JVM will autoscale based upon machine
# memory size.
# export HADOOP_HEAPSIZE_MIN=
HADOOP_NAMENODE_OPTS= Xmx102400m

查看 NameNode占用内存

[Tom@hadoop102 hadoop-3.1.3]$ jps
3136 JobHistoryServer
3200 Jps
2947 NodeManager
2486 NameNode
2622 DataNode
[Tom@hadoop102 hadoop-3.1.3]$ jps -heap 2486
Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 478150656 (456.0MB)

查看 DataNode占用内存

[Tom@hadoop102 hadoop-3.1.3]$ jmap -heap 2622
Heap Configuration:
   MinHeapFreeRatio         = 40
   MaxHeapFreeRatio         = 70
   MaxHeapSize              = 478150656 (456.0MB)

查看发现 hadoop102上的 NameNode和 DataNode占用内存都是自动分配的,且相等。不是很合理。
经验参考:
https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_hardware_requirements.html#concept_fzz_dq4_gbb

具体修改:hadoop-env.sh

export HDFS_NAMENODE_OPTS="-Dhadoop.security.logger=INFO,RFAS-Xmx1024m"

export HDFS_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS-Xmx1024m"

1.2 NameNode 心跳并发配置


NameNode 有一个工作线程池,用来处理不同 DataNode 的并发心跳以及客户端并发的元数据操作 。对于大集群或者有大量客户端的集群来说,通常需要增大该参数 。 默认值是10 。

<property>
	<name>dfs.namenode.handler.count</name>
	<value>21</value>
</property>

企业经验:dfs.namenode.handler.count= 20 × l o g e C l u s t e r s i z e 20×log_eCluster size 20×logeClustersize,比如集群规模 (DataNode台数)为 3台时,此参数设置为 21。可通过简单的 python代码计算该值,代码如下。

[Tom@hadoop102 hadoop-3.1.3]$ python
Python 2.7.5 (default, Oct 14 2020, 14:45:30) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> print int(20*math.log(3))
21
>>> quit()

1.3 开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据 ,起到防止误删除、备份等作用。

(1)回收站工作机制

(2)开启回收站功能参数说明
默认值 fs.trash.interval = 0,0表示禁用回收站,其他值表示设置文件的存活时间。
默认值 fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为 0,则该值设置和 fs.trash.interval的参数值相等。
要求 fs.trash.checkpoint.interval <= fs.trash.interval。

(3)启用回收站
修改core-site.xml配置,垃圾回收时间为1 分钟。

<property>
	<name>fs.trash.interval</name>
	<value>1</value>
</property>

(4)查看回收站
回收站目录在HDFS 集群中的路径:/user/Tom/.Trash/….

(5)注意:通过网页上直接删除的文件也不会走回收站。

(6)通过程序删除的文件不会经过回收站,需要调用 moveToTrash()才 进入回收站

Trash trash = N ew Trash(conf);
trash.moveToTrash(path);

(7)只有在命令行利用 hadoop fs -rm命令删除的文件才会走回收站。

[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -rm -r /input
2021-06-24 18:20:36,515 INFO fs.TrashPolicyDefault: Moved: 'hdfs://hadoop102:8020/input' to trash at: hdfs://hadoop102:8020/user/Tom/.Trash/Current/input

(8)恢复回收站数据

[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -mv /user/Tom/.Trash/Current/input /input

2 HDFS—集群压测

在企业中非常关心每天从Java后台拉取过来的数据,需要多久能上传到集群?消费者关心多久能从 HDFS上拉取需要的数据?
为了搞清楚HDFS的读写性能,生产环境上非常需要对集群进行压测。

HDFS的读写性能主要受 网络 和磁盘 影响比较大。为了方便测试,将 hadoop102、hadoop103、 hadoop104虚拟机网络都设置为 100mbps。

100Mbps单位是 bit;10M/s单位是 byte;1byte=8bit;100Mbps/8=12.5M/s。

测试网速:来到hadoop102的 /opt/software目录, 创建一个

[Tom@hadoop102 software]$ python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

2.1 测试 HDFS写性能

写测试底层原理

测试内容: 向HDFS 集群写5个128M的文件

注意: nrFiles n 为生成mapTask 的数量,生产环境一般可通过hadoop103:8088 查看 CPU核数,设置为(CPU核数 - 1)

[Tom@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 5 -fileSize 128MB
2021-06-24 21:58:25,548 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-06-24 21:58:25,568 INFO fs.TestDFSIO: ----- TestDFSIO ----- : write
2021-06-24 21:58:25,568 INFO fs.TestDFSIO:             Date & time: Thu Jun 24 21:58:25 CST 2021
2021-06-24 21:58:25,568 INFO fs.TestDFSIO:         Number of files: 5
2021-06-24 21:58:25,568 INFO fs.TestDFSIO:  Total MBytes processed: 640
2021-06-24 21:58:25,568 INFO fs.TestDFSIO:       Throughput mb/sec: 0.88
2021-06-24 21:58:25,568 INFO fs.TestDFSIO:  Average IO rate mb/sec: 0.88
2021-06-24 21:58:25,568 INFO fs.TestDFSIO:   IO rate std deviation: 0.04
2021-06-24 21:58:25,568 INFO fs.TestDFSIO:      Test exec time sec: 246.54
2021-06-24 21:58:25,568 INFO fs.TestDFSIO: 

Number of files:生成 mapTask数量 一般是集群中 CPU核数 -1),我们测试虚拟机就按照实际的物理内存 -1分配即可
Total MBytes processed:单个map 处理的文件大小
Throughput mb/sec:单个mapTak 的吞吐量
计算方式:处理的总文件大小 / 每一个mapTask 写数据的时间累加
集群整体吞吐量:生成mapTask 数量 * 单个mapTak 的吞吐量
Average IO rate mb/sec:平均 mapTak的吞吐量
计算方式:每个mapTask 处理文件大小 / 每一个mapTask 写数据的时间全部相加除以task 数量
IO rate std deviation:方差、反映各个 mapTask处理的差值,越小越均衡

注意:如果测试过程中,出现异常,可以在yarn-site.xml中设置虚拟内存检测为false。然后分发配置并重启集群。

<!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->
<property>
	<name>yarn.nodemanager.vmem-check-enabled</name>
	<value>false</value>
</property>

测试结果分析
由于副本1就在本地,所以该副本不参与测试

一共参与测试的文件:
5个文件 * 2个副本 = 10个
压测后的速度: 0.88
实测速度:0.88M/s * 10个文件 ≈ 8.8M/s
三台服务器的带宽:12.5 + 12.5 + 12.5 ≈ 30m/s
所有网络资源没有用满。

如果实测速度远远小于网络,并且实测速度不能满足工作需求,可以考虑采用固态硬盘或者增加磁盘个数。

如果客户端不在集群节点,那就三个副本都参与计算

2.2 测试HDFS 读性能

测试内容:读取HDFS 集群5个128M的文件

[Tom@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -read -nrFiles 5 -fileSize 128MB

2021-06-25 17:34:41,179 INFO fs.TestDFSIO: ----- TestDFSIO ----- : read
2021-06-25 17:34:41,181 INFO fs.TestDFSIO:             Date & time: Fri Jun 25 17:34:41 CST 2021
2021-06-25 17:34:41,182 INFO fs.TestDFSIO:         Number of files: 5
2021-06-25 17:34:41,182 INFO fs.TestDFSIO:  Total MBytes processed: 640
2021-06-25 17:34:41,182 INFO fs.TestDFSIO:       Throughput mb/sec: 4.6
2021-06-25 17:34:41,182 INFO fs.TestDFSIO:  Average IO rate mb/sec: 4.74
2021-06-25 17:34:41,182 INFO fs.TestDFSIO:   IO rate std deviation: 0.93
2021-06-25 17:34:41,182 INFO fs.TestDFSIO:      Test exec time sec: 82.47
2021-06-25 17:34:41,182 INFO fs.TestDFSIO: 

删除测试生成数据

[Tom@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-3.1.3-tests.jar TestDFSIO -clean

3 HDFS—多目录

3.1 NameNode 多目录配置

NameNode的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。

具体配置如下

(1)在 hdfs-site.xml文件中添加如下内容

<property>
	<name>dfs.namenode.name.dir</name>
	<value>file://$hadoop.tmp.dir/dfs/name1,file://$hadoop.tmp.dir/dfs/name2</value>
</property>

注意:因为每台服务器节点的磁盘情况不同,所以这个配置配完之后,可以选择不分发。

(2)停止集群,删除三台节点的 data和 logs中所有数据。

[Tom@hadoop102 hadoop 3.1.3 ]$ rm rf data/ logs/
[Tom@hadoop103 hadoop 3.1.3 ]$ rm rf data/ logs/
[Tom@hadoop104 hadoop 3.1.3 ]$ rm rf data/ logs/

(3)格式化集群并启动。

[Tom@hadoop102 hadoop 3.1.3 ]$ bin/hdfs namenode format
[Tom@hadoop102 hadoop 3.1.3 ]$ sbin/start dfs.sh

查看结果

[Tom@hadoop102 dfs]$ ll
总用量12
drwx------. 3 Tom Tom 4096 12月11 08:03 data
drwxrwxr-x. 3 Tom Tom 4096 12月11 08:03 name1
drwxrwxr-x. 3 Tom Tom 4096 12月11 08:03 name2

检查name1和 name2里面的内容,发现一模一样。

3.2 DataNode 多目录配置

DataNode可以配置成多个目录,每个目录存储的数据不一样(数据不是副本)

具体配置如下

(1)在 hdfs-site.xml文件中添加如下内容

<property>
	<name>dfs.datanode.data.dir</name>
	<value>file://$hadoop.tmp.dir/dfs/data1,file://$hadoop.tmp.dir/dfs/data2</value>
</property>

查看结果

[Tom@hadoop102 dfs]$ ll
总用量12
drwx------. 3 Tom Tom 4096 4月4 14:22 data1
drwx------. 3 Tom Tom 4096 4月4 14:22 data2
drwxrwxr-x. 3 Tom Tom 4096 12月11 08:03 name1
drwxrwxr-x. 3 Tom Tom 4096 12月11 08:03 name2

向集群上传一个文件,再次观察两个文件夹里面的内容发现不一致 (一个有数一个没有)

[Tom@hadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/word.txt /

3.3 集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。( Hadoop3.x新特性)

(1)生成均衡计划(我只有一块磁盘,不会生成计划)

[Tom@hadoop102 hadoop-3.1.3]$ hdfs diskbalancer -plan hadoop102

(2)执行均衡计划

[Tom@hadoop102 hadoop-3.1.3]$ hdfs diskbalancer -execute hadoop102.plan.json

(3)查看当前均衡任务的执行情况

[Tom@hadoop102 hadoop-3.1.3]$ hdfs diskbalancer -query hadoop102

(4)取消均衡任务

[Tom@hadoop102 hadoop-3.1.3]$ hdfs diskbalancer -cancel hadoop102.plan.json

4 HDFS—集群扩容及缩容

4.1 添加白名单

白名单:表示在白名单的主机IP地址可以用来存储数据。
企业中:配置白名单,可以尽量防止黑客恶意访问攻击。

配置白名单步骤如下:

在 NameNode节点的 /opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建 whitelist 和 blacklist文件

(1)创建白名单

[Tom@hadoop102 hadoop]$ vim whitelist

在whitelist中添加下主机名称 ,假如集群正常工作的节点为102 103

hadoop102
hadoop103

(2)创建黑名单,保持空的就可以

[Tom@hadoop102 hadoop]$ touch blacklist

在 hdfs-site.xml配置文件中增加 dfs.hosts配置参数

<!--白名单-->
<property>
	<name>dfs.hosts</name>
	<value>/opt/module/hadoop-3.1.3/etc/hadoop/whitelist</value>
</property>

<!--黑名单-->
<property>
	<name>dfs.hosts.exclude</name>
	<value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>

分发配置文件 whitelist hdfs-site.xml

[Tom@hadoop104 hadoop]$ xsync hdfs site.xml whitelist

第一次添加白名单必须重启集群,不是第一次,只需要刷新 NameNode节点即可

[Tom@hadoop102 hadoop 3.1.3]$ myhadoop.sh stop
[Tom@hadoop102 hadoop 3.1.3]$ myhadoop.sh start

在 web浏览器上查看 DN,http://hadoop102:9870/dfshealth.html#tab-datanode

在 hadoop104上执行上传数据数据失败

[Tom@hadoop104 hadoop-3.1.3]$ hadoop fs -put NOTICE.txt /


二次修改白名单,增加 hadoop104

[Tom@hadoop102 hadoop]$ vim whitelist
修改为如下内容
hadoop102
hadoop103
hadoo p104

刷新 NameNode

[Tom@hadoop102 hadoop 3.1.3]$ hdfs dfsadmin refreshNodes
Refresh nodes successful

在 web浏览器上查看 DN http://hadoop102:9870/dfshealth.html#tab-datanode

4.2 服役新服务器

需求
随着公司业务的增长,数据量越来越大 ,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。

环境准备
(1)在 hadoop100主机上再克隆一台 hadoop105主机
(2)修改 IP地址和主机名称

[root@hadoop105 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@hadoop105 ~]# vim /etc/hostname

(3)拷贝 hadoop102的 /opt/module目录和 /etc/profile.d/my_env.sh到 hadoop105

[Tom@hadoop102 opt]$ scp-r module/* Tom@hadoop105:/opt/module/
[Tom@hadoop102 opt]$ sudo scp/etc/profile.d/my_env.sh root@hadoop105:/etc/profile.d/my_env.sh
[Tom@hadoop105 hadoop-3.1.3]$ source /etc/profile

(4)删除 hadoop105上 Hadoop的历史数据, data和 logs数据

[Tom@hadoop105 hadoop 3.1.3]$ rm rf data/ logs/

(5)配置 hadoop102和 hadoop103到 hadoop105的 ssh无密登录

[ hadoop102 .ssh]$ ssh copy id hadoop105
[ hadoop103 .ssh]$ ssh copy id hadoop105

服役新节点具体步骤
(1)直接启动 DataNode 即可关联到集群

[Tom@hadoop105 hadoop-3.1.3]$ hdfs --daemon start datanode
[Tom@hadoop105 hadoop-3.1.3]$ yarn --daemon start nodemanager


在白名单中增加新服役的服务器
(1)在白名单 whitelist中增加 hadoop104、 hadoop105,并重启集群

[Tom@hadoop102 hadoop]$ vim whitelist
修改为如下内容
hadoop102
hadoop103
hadoop104
hadoop105

(2)分发

[Tom@hadoop102 hadoop]$ xsync whitelist

(3)刷新 NameNode

[Tom@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

在 hadoop105上上传文件

[Tom@hadoop105 hadoop-3.1.3]$ hadoop fs -put /opt/module/hadoop-3.1.3/LICENSE.txt /

4.3 服务器间数据均衡

企业经验
在企业开发中,如果经常在hadoop102和 hadoop104上提交任务,且副本数为 2,由于数据本地性原则,就会导致hadoop102和 hadoop104数据过多, hadoop103存储的数据量小。
另一种情况,就是新服役的服务器数据量比较少,需要执行集群均衡命令。

开启数据均衡命令

[Tom@hadoop105 hadoop 3.1.3]$ sbin/start balancer.sh
threshold 10

对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过 10%,可根据实际情况进行调整。

停止数据均衡命令

[Tom@hadoop105 hadoop-3.1.3]$ sbin/stop-balancer.sh

注意 :由于HDFS 需要启动单独的 Rebalance Server来执行 Rebalance操作, 所以尽量不要在 NameNode上执行 start-balancer.sh,而是找一台比较空闲的机器。

4.4 黑名单退役服务器

黑名单:表示在黑名单的主机IP地址不可以用来存储数据。
企业中:配置黑名单,用来退役服务器。

黑名单配置步骤如下:
编辑 /opt/module/hadoop-3.1.3/etc/hadoop目录下的 blacklist文件

[Tom@hadoop102 hadoop vim blacklist

添加如下主机名称(要退役的节点)
hadoop105

注意:如果白名单中没有配置,需要在 hdfs-site.xml配置文件中增加 dfs.hosts配置参数

<!--黑名单-->
<property>
	<name>dfs.hosts.exclude</name>
	<value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>

分发配置文件 blacklist,hdfs-site.xml

[Tom@hadoop104 hadoop]$ xsync hdfs-site.xml blacklist

第一次添加黑名单必须重启集群,不是第一次,只需要刷新 NameNode节点即可

[Tom@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

检查 Web浏览器 ,退役节点的状态为 decommission in progress(退役中,说明数据节点正在复制块到其他节点)

等待退役节点状态为 decommissioned(所有块已经复制完成 ),停止该节点及节点资源管理器。 注意 :如果副本数是 3 服役的节点小于等于 3,是不能退役成功的,需要修改副本数后才能退役。

[Tom@hadoop105 hadoop-3.1.3]$ hdfs --daemon stop datanode

[Tom@hadoop105 hadoop-3.1.3]$ yarn--daemon stop nodemanager

如果数据不均衡,可以用命令实现集群的再平衡

[Tom@hadoop102 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10

5 HDFS—存储优化

注:演示纠删码和异构存储需要一共 5台虚拟机。尽量拿另外一套集群。提前准备 5台服务器的集群。

5.1 纠删码

5.1.1 纠删码原理

HDFS默认情况下,一个文件有 3个副本,这样提高了数据的可靠性,但也带来了 2倍的冗余开销。 Hadoop3.x引入了纠删码, 采用计算的方式, 可以节省约 50%左右的存储空间。

纠删码操作相关的命令

[Tom@hadoop102 hadoop-3.1.3]$ hdfs ec
Usage: bin/hdfs ec [COMMAND]
          [-listPolicies]
          [-addPolicies -policyFile <file>]
          [-getPolicy -path <path>]
          [-removePolicy -policy <policy>]
          [-setPolicy -path <path> [-policy <policy>] [-replicate]]
          [-unsetPolicy -path <path>]
          [-listCodecs]
          [-enablePolicy -policy <policy>]
          [-disablePolicy -policy <policy>]
          [-help <command-name>]

查看当前支持的纠删码策略

[Tom@hadoop102 hadoop-3.1.3]$ hdfs ec -listPolicies
Erasure Coding Policies:
ErasureCodingPolicy=[Name=RS-10-4-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=10, numParityUnits=4]], CellSize=1048576, Id=5], State=DISABLED
ErasureCodingPolicy=[Name=RS-3-2-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=3, numParityUnits=2]], CellSize=1048576, Id=2], State=DISABLED
ErasureCodingPolicy=[Name=RS-6-3-1024k, Schema=[ECSchema=[Codec=rs, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=1], State=ENABLED
ErasureCodingPolicy=[Name=RS-LEGACY-6-3-1024k, Schema=[ECSchema=[Codec=rs-legacy, numDataUnits=6, numParityUnits=3]], CellSize=1048576, Id=3], State=DISABLED
ErasureCodingPolicy=[Name=XOR-2-1-1024k, Schema=[ECSchema=[Codec=xor, numDataUnits=2, numParityUnits=1]], CellSize=1048576, Id=4], State=DISABLED

纠删码策略解释

(1)RS-3-2-1024k:使用 RS编码,每 3个数据单元,生成 2个校验单元,共 5个单元,也就是说:这 5个单元中,只要有任意的 3个单元存在(不管是数据单元还是校验单元,只要总数=3),就可以得到原始数据。每个单元的大小是1024k=1024*1024=1048576。

(2)RS-10-4-1024k:使用 RS编码,每 10个数据单元( cell),生成 4个校验单元,共 14个单元,也就是说:这 14个单元中,只要有任意的 10个单元存在 (不管是数据单元还是校验单元,只要总数 =10),就可以得到原始数据。每个单元的大小是1024k=1024*1024=1048576。

(3)RS-6-3-1024k:使用 RS编码,每 6个数据单元,生成 3个校验单元,共 9个单元,也就是说:这 9个单元中,只要有任意的 6个单元存在(不管是数据单元还是校验单元,只要总数 =6),就可以得到原始数据。每个单元的大小是 1024k=1024*1024=1048576。

(4)RS-LEGACY-6-3-1024k:策略和上面的 RS-6-3-1024k一样,只是编码的算法用的是 rs-legacy。

(5)XOR-2-1-1024k:使用 XOR编码(速度比 RS编码快),每 2个数据单元,生成 1个校验单元,共 3个单元,也就是说:这 3个单元中,只要有任意的 2个单元存在(不管是数据单元还是校验单元,只要总数 = 2),就可以得到原始数据。每个单元的大小是1024k=1024*1024=1048576。

5.1.2 纠删码案例实操


纠删码策略是给具体一个路径设置 。所有往此路径下存储的文件,都会执行此策略。默认只开启对RS-6-3-1024k策略的支持 ,如要使用别的策略需要提前启用 。

需求:将 /input目录设置为 RS-3-2-1024k策略

具体步骤
(1)开启对 RS-3-2-1024k策略的支持

[Tom@hadoop102 hadoop-3.1.3]$ hdfs ec -enablePolicy -<

以上是关于大数据技术之Hadoop(生产调优手册)的主要内容,如果未能解决你的问题,请参考以下文章

大数据技术之Hadoop(生产调优手册)

尚硅谷大数据技术Hadoop教程-笔记06Hadoop-生产调优手册

Hadoop-生产调优手册

Hadoop-生产调优手册

#yyds干货盘点#Hadoop企业级生产调优手册

尚硅谷大数据Hadoop教程-笔记01入门