b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

hdfs 删除文件夹 ALLUXIO在携程大数据平台中的应用与实践

电脑杂谈  发布时间:2018-02-09 15:45:42  来源:网络整理

hdfs 删除文件夹_hdfs拷贝文件_hdfa dfs -rm

进入大数据时代,实时作业有着越来越重要的地位,并且部分实时和离线作业存在数据共享。实践中使用统一的资源调度平台能够减少运维工作,但同时也会带来一些问题。本文章介绍了携程的大数据平台是如何引入Alluxio来解决HDFS停机维护影响实时作业的问题,并在保证实时作业不中断的同时减少对HDFS NameNode的压力,以及加快部分Spark SQL作业的处理效率。

??

为了解决数据跨集群共享的问题。我们引入了国际知名并且开源的Alluxio。我们部署的Alluxio1.4具有良好的稳定性和高效性。在引入Alluxio之后,我们的架构如图2所示。

?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??图4 改进后架构图

hdfa dfs -rm_hdfs拷贝文件_hdfs 删除文件夹

???????????? 从图4可以看到,Spark Streaming数据直接落地到Alluxio,Alluxio通过将HDFS1和HDFS2分别挂载到两个路径下。hdfs 删除文件夹简单的通过命令:

$ alluxio fs mount /path/on/alluxio hdfs://namenode:port/path/on/hdfs

就能分别挂载这两个HDFS集群。HDFS-2集群专门负责存储流计算的数据。数据收集到Kafka之后,Spark Streaming对其进行消费,计算后的数据直接写挂载了HDFS-2集群的路径。Alluxio很友好的为Client提供了三种写策略,分别是:MUST_CACHE、CACHE_THROUGH、THROUGH,这三种策略分别是只写Alluxio,同步到HDFS,只写HDFS。这里可以根据数据的重要性,采用不同的策略来写Alluxio,重要的数据需要同步到HDFS,允许数据丢失的可以采用只写Alluxio策略。hdfs 删除文件夹

???????????? 采用上述策略方案之后,我们发现Alluxio在一定程度上减少了NameNode的压力。部分热点数据并且多次使用的数据,我们会通过定时作业将该部分数据加载到Alluxio,一方面加快了计算引擎加载数据的速度,另外一方面减少了对NameNode的数据访问请求数。

此外, Alluxio自身实现了一个叫做TTL(Time To Live)的功能,只要对一个路径设置了TTL,Alluxio内部会对这部分数据进行检测,当前时间减去路径的创建时间大于TTL数值的路径会触发TTL功能。考虑到实用性,Alluxio为我们提供了Free和Delete两种Action。Delete会将底层文件一同删除,Free只删Alluxio而不删底层文件系统。为了减少Alluxio内存压力,我们要求写到Alluxio中的数据必须设置一个TTL,这样Alluxio会自动将过期数据删除(通过设置Free Action策略,可以删除Alluxio而不删除HDFS)。对于从Alluxio内存中加载数据的SparkSql作业,我们拿取了线上的作业和从HDFS上读数据进行了对比,普遍提高了30%的执行效率。

hdfs拷贝文件_hdfs 删除文件夹_hdfa dfs -rm

后记:

从调研Alluxio到落地上线Alluxio,整个过程下来,我们碰到过一系列的问题, 并针对这些问题以及我们的业务需求, 我们开发了一系列的功能并回馈了Alluxio社区。

1.????????Alluxio在写HDFS的时候,需要使用HDFS的Root账号权限,对于带Kerberos的HDFS集群,会出现无权限写。为了解决这个问题,我们为Alluxio单独建了一个Hadoop账号,所有落地到HDFS的数据通过该账号来写。

2.????????1.4版本的Alluxio不支持以文件夹的形式进行TTL的设置,我们进行了功能的完善并贡献给社区(出现在1.5以及后续版本中)

3.????????1.4版本的Alluxio不支持外部命令形式挂载HA的HDFS集群(1.6版本后得到解决),对于底层HDFS发生NameNode主从切换,Alluxio则不能进行正常的读写底层HDFS数据,为了解决这个问题,我们写了脚本来监控HDFS的主从切换情况,发生切换,我们会从新Mount底层文件。

4.????????1.4版本不支持TTL使用Free策略来删除数据,我们对该功能进行了完善并贡献给社区(出现在1.5以及后续版本中)。

5.????????1.4版本底层文件发生修改,对于Alluxio来说是不感知的,而通过Alluxio读取的数据可能出现不准确(1.7版本得到了彻底解决),我们开发了一个shell命令checkConsistency和repairConsistency来解决这个问题。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-69042-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...