Hadoop-No.6之文件在HDFS中的位置

在设计一种HDFS模式时,首先应该决定文件的位置.标准化的位置会使得团队之间更容易查找和共享数据.
推荐HDFS目录结构实例.目录结构简化了不同组和用户的权限分配

  • /user/{username}

    只属于特定用户的数据,JAR包和配置文件.通常是用户在试验中使用的非正式数据,不属于业务流程./user下的目录通常只能由所有者进行读取和写入

  • /etl

    ETL(Extract, Transform and Load,提取,转化,加载)工作流正在处理的.处于不同阶段的数据./etl目录由ETL过程(通常是在各自的user目录下进行)与ETL团队的成员读取和写入.拥有ETL过程的不同组别(如业务分析,欺诈识别,以及市场营销)在/etl目录树中都有对应的子目录.

  • /tmp

    工具生成或者用户共享的临时数据.该目录通常通过程序自动清除,不会存储生命周期长的数据.通常每个人都能读取或写入该目录

  • /data

    经过处理并且在整个组织内共享的数据集.这些通常是待分析数据的重要来源,可以促成业务决策,所以不能不分身份角色,任人读取和写入.通常用户只能读取数据,数据由自动化的ETL过程写入.而且需要审计./data目录下的数据通常对于业务非常重要,所以一般只允许自动化的ETL过程写入数据,改变都是要受到控制和审计的.不同的业务团队对于/data目录下的目录拥有不同的读取权限.

  • /app

    几乎囊括Hadoop应用运行所需要的一些,但不包括数据,这里有Jar文件,OOzie工作流定义,Hive HQL文件,等等.应用的代码目录/app用于存储应用所需要的依赖.各版本的目录应该类似于如下结构:

    /app/<组>/<应用>/<版本>/<包目录>/<包>

  • /metadata

    存储元数据,尽管大多数表元数据都存储在Hive metastore中,但是还是可能会有一些元数据(如Avro模式文件)可能需要存储在HDFS中.该目录是存储此类元数据的最佳位置.该目录通常对ETL任务可读,而采集数据到Hadoop中的用户(如Sqoop用户)则拥有写权限.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
INFO [upload-pool-47] c.e.d.j.DataUnitService.DataUnitService#tohiveWy[DataUnitService.java:172] /u01/tarsftp//2023070719592612007140001.txt.gz解压>>>>>>/u01/untarsftp/ 2023-07-07 20:11:54,787 WARN [Thread-4655234] o.a.h.h.DFSClient.DFSOutputStream$DataStreamer#run[DFSOutputStream.java:558] DataStreamer Exception org.apache.hadoop.ipc.RemoteException: File /dataunit/cu_access_log/10/2023070719592612007140001.txt could only be written to 0 of the 1 minReplication nodes. There are 11 datanode(s) running and no node(s) are excluded in this o peration. at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:2121) at org.apache.hadoop.hdfs.server.namenode.FSDirWriteFileOp.chooseTargetForNewBlock(FSDirWriteFileOp.java:286) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2706) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:875) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:561) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:524) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1025) at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:876) at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:822) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2682)
07-13

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值