目标副本为10但发现3副本

时间:2015-12-13 22:06:11

标签: hadoop filesystems hdfs yarn fsck

我该如何解决这个问题?

import javax.swing.JPanel; 
import java.awt.Dimension; 
import java.awt.Color; 
import javax.swing.JButton; 
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent; 
import javax.swing.JList; 
import javax.swing.BoxLayout; 
import javax.swing.JScrollPane; 
import java.awt.BorderLayout;
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 
import java.util.ArrayList; 

/**
 * Write a description of class Front_Menu here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Front_Menu
{
    //Fields 
    private JFrame frame; 
    private JButton button1; 
    private JList list; 
    private JScrollPane listScroller; 
    private JPanel panel1; 
    private String title;

    /**
     * Construct the GUI
     */

    public void go()
    {
        frame = new JFrame("Flashcard Maker"); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

        Dimension frameSize = new Dimension(400, 300);
        frame.getContentPane().setPreferredSize(frameSize);        
        frame.getContentPane().setBackground(Color.WHITE);

        button1 = new JButton("New Set"); 
        button1.addActionListener(new ButtonListener());
        frame.getContentPane().add(BorderLayout.SOUTH, button1);

        String[] titleArray ={"Biology Set", title};
        list = new JList(titleArray); 

        listScroller = new JScrollPane(list);
        frame.getContentPane().add(BorderLayout.CENTER, listScroller); 

        frame.pack();
        frame.setVisible(true);
    }

    /**
     * Main Method 
     */

    public static void main(String[] args)
    {
        Front_Menu front_menu = new Front_Menu(); 
        front_menu.go(); 
    }

    /**
     * Inner class for the Button Listener 
     */

    private class ButtonListener implements ActionListener
    {
        /**
         * Override the actionPerformed Method 
         */

        public void actionPerformed(ActionEvent event)
        {
            title = JOptionPane.showInputDialog( 
                                null, 
                                "What is the title of your new set? "
                                );       
        }
    }
}

当我在主节点中运行/tmp/hadoop-yarn/staging/ubuntu/.staging/job_1450038005671_0025/job.jar: Under replicated BP-938294433-10.0.1.190-1450037861153:blk_1073744219_3398. Target Replicas is 10 but found 3 replica(s). 时,我得到了这个。 我假设我应该在conf或类似的东西中更改hadoop fsck /文件,我只是不知道要更改哪个文件。

请注意.xml中的dfs.replication已设置为3.我的hdfs-site.xml文件中没有dfs.replication.max

3 个答案:

答案 0 :(得分:6)

作为工作的一部分提交的文件(jar等)的复制计数由mapred-site.xml中的参数mapreduce.client.submit.file.replication(或2.4前集群中的mapred.submit.replication)控制。您可以为小于10个节点的群集调低此值,或者只是忽略来自fsck的消息。

FWIW,这里有一个JIRA,但我怀疑它会不会有效。

答案 1 :(得分:1)

HDFS配置文件hdfs-site.xml应包含dfs.replication属性,该属性描述了块复制因子:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
</configuration>

默认hdfs-site.xml位置为/etc/hadoop/hdfs-site.xml

答案 2 :(得分:1)

你可以忽略。 /tmp/hadoop-yarn/staging/ubuntu/.staging/job_1450038005671_0025/job.jar,它是一份工作资源。 dfs.replication对作业资源没有影响。

  1. 使用-files(分布式缓存)传递的jar文件,文件等作业资源将使用10作为复制因子复制到HDFS
  2. 当作业运行时,这些作业资源(代码)将被复制到容器/任务以处理数据
  3. 根据阈值完成作业后,这些资源将自动回收。
  4. 此功能有助于在处理数据时实现数据位置(代码转到数据)。