MapReduce в Hadoop дает лимит накладных расходов GC, превышаемый при использовании файлов более 200 МБJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 MapReduce в Hadoop дает лимит накладных расходов GC, превышаемый при использовании файлов более 200 МБ

Сообщение Anonymous »

Я запускаю код MapReduce в кластере Hadoop Multi-Node (2.4.1). Я получаю ошибку GC, превышающую, когда я пытаюсь запустить 2 входных файлов размеров 200 МБ и 200 МБ. Это работает отлично и получил правильный вывод, когда я использую очень маленькие файлы.

Моя цель-сравнить каждую запись потока в 1-м файле с каждой рекордной потоком во 2-м файле и расстояние вычисления, а затем взять 10 максимальных значений и вывод на восстановление на основе этих 10 максимумов. values.

Example flow record in both files - 194.144.0.27|192.168.1.5|0.0.0.0|0|0|2|104|1410985350|1410985350|51915|51413|6|6

Here is Mapper Class:
класс Mapper: < /strong>

< /p>
public class mapper extends Mapper
{

private final static IntWritable five = new IntWritable(5);

private Text counter1;

ArrayList lines = new ArrayList();
String str;
BufferedReader br,in;
int ddos_line = 0;
int normal_line = 0,total_testing_records=4000;
int K = 10;

@Override
protected void setup(Context context) throws IOException, InterruptedException
{
//BufferedReader in = new BufferedReader(new FileReader("normal"));

Configuration conf = context.getConfiguration();
URI[] cachefiles = context.getCacheFiles();

FileSystem fs = FileSystem.get(new Configuration());
FileStatus[] status = fs.listStatus(new Path(cachefiles[0].toString()));
BufferedReader in=new BufferedReader(new InputStreamReader(fs.open(status[0].getPath())));

while((str = in.readLine()) != null)
{
lines.add(str);
}
in.close();
//System.out.println("na netti");
}

@Override
public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException
{

String line1 = value.toString();
ddos_line++;
normal_line = 0;

double[] count = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
int[] lineIndex = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

String[] parts = line1.split("\\|");
String[] linesArray = lines.toArray(new String[lines.size()]);

boolean bool = true;
int t1=0;
double sum=0;
while (bool)
{
for(int i=0; i

Подробнее здесь: https://stackoverflow.com/questions/271 ... over-200mb
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Минимизация накладных расходов при преобразовании IntPtr в строки в C#
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Минимизация накладных расходов при преобразовании IntPtr в String
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Сколько накладных расходов при создании потока?
    Anonymous » » в форуме C++
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка java.lang.OutOfMemoryError: превышен предел накладных расходов GC
    Гость » » в форуме JAVA
    0 Ответы
    103 Просмотры
    Последнее сообщение Гость
  • В чем причина накладных расходов на функцию childItems() в Qt C++ QGraphicsItems?
    Anonymous » » в форуме C++
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»