小编sam*_*rth的帖子

BufferedReader的低性能

我正在逐行处理一些文本文件BufferReader.readlLine().

两个文件具有相同的大小130MB,但一个需要40秒才能处理,而其他文件需要75秒.

我注意到一个文件有180万行,而其他文件有210万行.但是,当我尝试处理具有相同大小的300万行的文件时,需要30分钟来处理.

所以我的问题是:

  1. 这种行为是因为寻求缓冲区读取器的时间(我想知道如何BufferedReader逐行工作或解析文件?)

  2. 有没有什么方法可以更快地逐行读取文件?

好的朋友,我提供更多细节.

我正在使用正则表达式将该行拆分为三个部分,然后使用SimpleUnsortedWriter(由Cassandra提供)我将其作为键,列和值写入某个文件.处理完16MB数据后,它会刷新到磁盘.

但是处理逻辑对于所有文件都是相同的,甚至一个大小为330MB的文件,但是在30秒内没有大约100万行的处理逻辑.可能是什么原因?

deviceWriter = new SSTableSimpleUnsortedWriter(
        directory,
        keyspace,
        "Devices",
        UTF8Type.instance,
        null,
        16);

Pattern pattern = Pattern.compile("[\\[,\\]]");
while ((line = br.readLine()) != null)          
{
    //split the line i n row column and value
    long timestamp = System.currentTimeMillis() * 1000;
    deviceWriter .newRow(bytes(rowKey));
    deviceWriter .addColumn(bytes(colmName), bytes(value), timestamp);

}
Run Code Online (Sandbox Code Playgroud)

已经改变了,-Xmx256M to -Xmx 1024M但无论如何都没有帮助.

更新: 根据我的观察,当我写入缓冲区(在物理内存中)时,就像没有.写入缓冲区正在增加新的写入需要时间.(这是我的猜测)

请回复.

java text-processing readline seek bufferedreader

6
推荐指数
1
解决办法
4982
查看次数

如何删除根目录中没有空闲空间的"dead.letter"文件

  1. 今天我注意到dead.letter文件是在我的一个EC2实例的根目录中创建的.
  2. 经过一番查询,我发现这是因为一些不完整或终止的电子邮件功能而创建的.
  3. 它的大小为6 GiB,并且在根目录中没有留下任何空闲空间.
  4. 我删除了文件仍然我的根目录显示没有可用空间.

知道如何删除此文件并释放根空间吗?

unix linux filesystems email root

6
推荐指数
2
解决办法
2万
查看次数

即使所有节点都已启动并运行,群集中的某些cassandra节点也无法访问

我在ec2上有6个节点的cassandra集群,很多时候我发现集群中的所有节点都已启动并运行,但是当我从客户端执行描述集群时,它会显示一些节点无法访问.

  1. 我可以登录个人机器

  2. 可以使用cassandra客户端连接到cassandra节点

  3. 可以使用JMX连接到各个节点.

jmx cluster-computing amazon-ec2 cassandra reachability

5
推荐指数
1
解决办法
1185
查看次数

Hadoop为java.nio.ByteBuffer的keytype抛出ClassCastException

我正在使用"hadoop-0.20.203.0rc1.tar.gz"进行群集设置.每当我设定job.setMapOutputKeyClass(ByteBuffer.class);

并运行我得到以下异常的工作:

    12/01/13 15:09:00 INFO mapred.JobClient: Task Id : attempt_201201131428_0005_m_000001_2, Status : FAILED
java.lang.ClassCastException: class java.nio.ByteBuffer
        at java.lang.Class.asSubclass(Class.java:3018)
        at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:776)
        at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:958)
        at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:673)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:755)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369)
        at org.apache.hadoop.mapred.Child$4.run(Child.java:259)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
        at org.apache.hadoop.mapred.Child.main(Child.java:253)
Run Code Online (Sandbox Code Playgroud)

另外我注意到ByteBuffer是Comparable而不是Writable是否会产生任何差异?如果需要任何其他信息,请与我们联系.

hadoop bytebuffer mapreduce hadoop-streaming

5
推荐指数
1
解决办法
2260
查看次数

当多个sstables中存在相同的密钥时,cassandra密钥缓存如何工作?

1)根据datastax密钥缓存存储rowkey的主键索引.

2)在我们的例子中,我们为密钥缓存分配了足够的内存,并且在具有不同列的多个sstables中存在相同的密钥.

3)如果没有调用从多个sstables访问所有这些相同的密钥,那么索引如何存储在密钥缓存中?它会存储所有sstables的索引还是仅存储最近访问密钥的最后一个sstable?

caching cassandra

4
推荐指数
1
解决办法
3300
查看次数

输出具有较小物理内存的1亿个整数

想要输出1亿个整数,我的系统只有1 GB的RAM.什么是最快速有效的排序方式?

  1. 假设我们在文本文件中输入每行一个整数.

  2. 我们正在使用java程序进行排序.

  3. 我已经指定了RAM,因为我们无法保存RAM中的所有输入整数.

更新:整数是7位数字.

java memory sorting performance ram

2
推荐指数
1
解决办法
6264
查看次数

如何将cassandra源代码打包到debian包中?

我有Cassandra的最新源代码.

我对cassandra代码做了一些更改以满足我的需求.

现在我想将这个Cassandra打包到debian包中,以便我可以轻松安装它.

我对debian和所有人都不太了解.任何人都可以解释一步一步的程序吗?

debian packaging cassandra

2
推荐指数
1
解决办法
296
查看次数

在类中运行相同的java程序两次使用静态变量

(我不知道我是否应该在这里问这个)我想运行两次相同的java程序,其中大部分变量都是静态的.

如果我运行这两次(同时)这些静态变量将具有相同的值或不同?

由于静态变量是类变量,这让我感到困惑.

java variables static scope class-variables

1
推荐指数
1
解决办法
1530
查看次数

运行时异常不终止程序

根据我的一点点java知识程序应该在它抛出运行时异常后终止.

但是在我的应用程序抛出运行时异常后它没有终止,并且因为我在linux上执行它我必须使用ctrl + c来终止它,否则它只是不会终止.

我在windows sytem上创建jar并将其复制粘贴到linux中.

我也在我的应用程序中启用了日志记录.

更新: 我没有捕获任何异常没有使用多线程.

java linux jar try-catch runtimeexception

0
推荐指数
1
解决办法
4572
查看次数