首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

统计hdfs中文件记录数的代码

统计HDFS中文件记录数的代码可以使用Hadoop的MapReduce框架来实现。下面是一个示例代码:

代码语言:txt
复制
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import java.io.IOException;

public class HDFSRecordCount {

    public static class RecordCountMapper extends Mapper<LongWritable, Text, NullWritable, NullWritable> {

        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            // 每读取一行记录,输出一个键值对
            context.write(NullWritable.get(), NullWritable.get());
        }
    }

    public static class RecordCountReducer extends Reducer<NullWritable, NullWritable, NullWritable, LongWritable> {

        @Override
        protected void reduce(NullWritable key, Iterable<NullWritable> values, Context context) throws IOException, InterruptedException {
            long count = 0;
            // 统计记录数
            for (NullWritable value : values) {
                count++;
            }
            // 输出记录数
            context.write(NullWritable.get(), new LongWritable(count));
        }
    }

    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        Job job = Job.getInstance(conf, "HDFS Record Count");
        job.setJarByClass(HDFSRecordCount.class);
        job.setMapperClass(RecordCountMapper.class);
        job.setReducerClass(RecordCountReducer.class);
        job.setOutputKeyClass(NullWritable.class);
        job.setOutputValueClass(NullWritable.class);
        FileInputFormat.addInputPath(job, new Path("hdfs://your-hdfs-path"));
        FileOutputFormat.setOutputPath(job, new Path("hdfs://your-output-path"));
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
}

这段代码使用了Hadoop的MapReduce框架来实现统计HDFS中文件的记录数。其中,Mapper类将每一行记录映射为一个键值对,Reducer类对所有键值对进行汇总并输出记录数。你需要将"hdfs://your-hdfs-path"替换为实际的HDFS文件路径,将"hdfs://your-output-path"替换为输出结果的HDFS路径。

腾讯云提供了一系列与Hadoop和大数据相关的产品和服务,例如TencentDB for Hadoop、Tencent Cloud Hadoop、Tencent Cloud Data Lake Analytics等,你可以根据具体需求选择适合的产品。更多关于腾讯云大数据产品的信息可以参考腾讯云官方网站:腾讯云大数据产品

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

HDFS文件访问权限

针对文件和目录,HDFS有与POSIX(可移植操作系统界面)非常相似的权限模式。    一共提供三类权限模式:只读权限(r),写入权限(w)和可执行权限(x)。...读取文件或列出目录内容时需要只读权限。写入一个文件,或是在一个目录上创建以及删除文件或目录,需要写入权限。对于文件而言,可执行权限可以忽略。...因为你不能在HDFS执行文件(与POSIX不同),但是在访问一个目录子项时需要改权限。 每个文件和目录都有所属用户(owner)、所属组别(group)以及模式(mode)。...这个模式是由所属用户权限,组内成员权限以及其他用户权限组成。   默认情况下,可以通过正在运行进程用户名和组名来唯一确定客户端标识。...因此,作为共享文件系统资源和防止数据意外损失一种机制,权限只能供合作团体用户使用,而不能再一个不友好环境中保护资源。

1.7K10

DataTable数据记录统计

DataTable数据记录统计我们在使用SqlServer这些数据库时,可以轻松通过SumC#...强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码 DataTable数据记录统计 我们在使用Sql Server这些数据库时,可以轻松通过...事件来对数据进行累加,同我们手动写代码统计没有什么区别。...本文介绍一个简单方法,不需要逐条记录进行计算就可以轻松获得DataTable记录统计结果。这个简单方法就是调用功能强大DataTable函数Compute。...,基本上类似于Sql Server统计表达式 strFilter:统计过滤字符串,只有满足这个过滤条件记录才会被统计 二、调用举例: 以下示例,假设一个产品销售表table,描述某商场各促销员销售实际记录

1.5K30

linux中统计目录文件和子目录

使用ls和grep命令配合 统计当前目录下文件个数,不包括目录 > ls -l | grep "^-" | wc -l 统计文件夹下文件个数,包括子文件 > ls -lR | grep "^-" |...wc -l 9188 统计文件夹下目录个数,包括子目录 > ls -lR | grep "^d" | wc -l 540 使用find和wc 统计当前目录下所有的普通文件,包含隐藏文件,不包含子目录下文件...> find /etc -maxdepth 1 -type f | wc -l 统计目录文件数量,包含隐藏文件,包含子目录文件 > find /etc -type f | wc -l 统计当前目录子目录...,包含隐藏目录,不包含子目录下目录 > find /etc -maxdepth 1 -type d | wc -l 统计当前目录子目录,包含隐藏目录,包含子目录下目录 > find /etc...linux15个基本ls命令示例 Linux之ls命令 linux35个find案例 linux中计算行数,字数,字符10个wc命令示例

3.1K20

HDFS——写文件异常处理

记得看过一本书,里面是这么写,软件开发二八原则,80%时间运行是正常流程,20%时间是异常流程。而实际代码,80%代码是在处理异常逻辑,而正常流程只占20%。...由此可见,异常处理是很重要一块内容。 本文就以原生JAVA客户端为例,聊聊HDFS里写文件过程异常处理。...先来简单回顾下HDFS文件流程,如下图所示: 客户端向NN申请block,NN处理请求后需要将操作写入JN。随后,客户端向DN建立连接发送数据,最后向NN同步block信息。...其次,客户端一开始并没有报错,还在持续向dn写入数据,从DN节点rbw目录,可以观察到block文件大小在持续递增,也就是说文件在不断写入。...DEFAULT:默认策略,(1)移除异常后DN列表个数大于block副本数除2(即副本数还有多数节点是非异常),(2)如果是append或hflushed添加block,并且副本数大于DN列表

77340

HadoopHDFS写入文件原理剖析

要为即将到来大数据时代最准备不是,下面的大白话简单记录了HadoopHDFS在存储文件时都做了哪些个事情,位将来集群问题排查提供一些参考依据。...步入正题 创建一个新文件过程: 第一步:客户端通过DistributedFilesystem 对象creat()方法来创建文件,此时,RPC会 通过一个RPC链接协议来调用namenode,并在命名空间中创建一个新文件...,将故障节点告知namenode、由此下次故障节点恢复后能将里面残留不完整副本文件清空。...其实这种情况很少发生但林子大了什么鸟都有是不是,我们在部署hadoop 有一个配置选项:dfs.replication.min  一般默认是1 ,意思就是说只要有一个节点成功,则hdfs就认为本次写入时成功...已经记录下来了所有副本存放datanode。

74420

HadoopHDFS读取文件原理剖析

上一篇文章简单介绍了一下Hadoop文件存储一些逻辑与简单原理(见 http://www.linuxidc.com/Linux/2015-02/113638.htm),既然后写入,那肯定要读取分析数据咯...,下面我在白话一下hdfs文件读取逻辑与简单原理。...namenode,namenode里面存储都是文件命名空间,也就是文件存储在datanode地址,我们首先获取到要想读取文件头所在位置,块存在很多个数据节点副本,hadoop会根据一定标准找到距离客户端最近一个节点...如果客户端遇到了异常块,那么客户端就会记录下来这个块,并尝试去读取距离这个块最近一个块,并且不会再去读取这个损坏块。...在之前我们一直提到hadoop寻找最近块或者节点机制是如何实现呢? 我们都知道。在大数据存储,限制效率最主要因素就是带宽。

50730

小白学习MySQL - “投机取巧”统计记录

同事提了个统计需求,MySQL某个库60%表都有个isdel字段(char(1)),值是0或1,现在要检索该数据库所有存在isdel字段且isdel=‘0’记录,举个例子,执行如下count...穿插一句,Oracle,我们知道,dba/all/user_tables视图num_rows字段表示这张表记录,和上述含义相同,但是这个信息,只有当统计信息更新时候,才会更新,而统计信息更新除了手动调用...(2) 依次执行count(*),统计每张表记录。 (3) 将(2)得到表名和记录,存储到另外一张表,作为检索用途。 我们按照倒序,依次操作下, 1....(2) 如果(1)num>0,则将表名、记录、插入时间,存入table_count表。...检索table_count,此时表记录,就是所有isdel='0',且count(*)>0表名和对应记录数了, select * from table_count; 其实整个过程,就是我们惯性思维能考虑到

4.2K40

文件文件信息统计写入到csv

今天在整理一些资料,将图片名字信息保存到表格,由于数据有些多所以就写了一个小程序用来自动将相应文件夹下文件名字信息全部写入到csv文件,一秒钟搞定文件信息保存,省时省力!...下面是源代码,和大家一起共享探讨: import os import csv #要读取文件根目录 root_path=r'C:\Users\zjk\Desktop\XXX' # 获取当前目录下所有目录信息并放到列表...dir in dirs: path_lists.append(os.path.join(root_path, dir)) return path_lists #将所有目录下文件信息放到列表...def get_Write_file_infos(path_lists): # 文件信息列表 file_infos_list=[] for path in path_lists..."]=filename1 #追加字典到列表 file_infos_list.append(file_infos) return

9.1K20

分享博客统计动态运行天数代码

快到博主恋爱纪念日了,本来是打算做一个恋爱时间统计功能来小小罗曼蒂克一下,类似于 已相恋 **年 **天 **小时 **分 **秒,当我找到让时间差转成年月日时分秒方法后,感觉用来做博客统计也是不错...>秒 老早之前描述了,自己看起来都费解,如果看不懂还是别尝试了,推荐使用翼帆远航博客分享博客统计小工具版本:http://www.ipeld.net/archives/3394.html...script type="text/javascript" language="javascript">     function setTime() {         // 博客创建时间秒数,时间格式,...footer 或 header ,然后将 44 行代码插入统计代码当中或网站合适位置即可,可在我博客首页侧边栏最下面看到具体效果。...注:感谢忙碌松鼠分享代码

1.2K100
领券