복붙노트

[HADOOP] 실패 오류 : 때 java.io.IOException : 모든 수집가의 초기화 실패

HADOOP

실패 오류 : 때 java.io.IOException : 모든 수집가의 초기화 실패

내 맵리 듀스 단어 수 작업을 실행하는 동안 나는 약간의 오류가 발생하고있다.

해결법

  1. ==============================

    1.나는이 작업을 위해 WritableComparable <> 인터페이스를 구현했다는 것을 발견했다.

    나는이 작업을 위해 WritableComparable <> 인터페이스를 구현했다는 것을 발견했다.

    import java.io.DataInput;
    import java.io.DataOutput;
    import java.io.IOException;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.io.WritableComparable;
    public class Pair implements WritableComparable<Pair> {
    
        public Text key1;
    
        public Text key2;
    
        public Pair() {
            key1 = new Text();
            key2 = new Text();
        }
    
        public Pair(String key1, String key2) {
            this.key1 = new Text(key1);
            this.key2 = new Text(key2);
        }
    
        public void setKey1(Text key1) {
            this.key1 = key1;
        }
    
        public void setKey2(Text key2) {
            this.key2 = key2;
        }
    
        public Text getKey1() {
            return key1;
        }
    
        public Text getKey2() {
            return key2;
        }
    
        @Override
        public boolean equals(Object b) {
            Pair p = (Pair) b;
            return p.key1.toString().equals(this.key1.toString())
                    && p.key2.toString().equals(this.key2.toString());
        }
    
        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result
                    + ((key1 == null) ? 0 : key1.toString().hashCode());
            result = prime * result
                    + ((key2 == null) ? 0 : key2.toString().hashCode());
            return result;
        }
    
        @Override
        public String toString() {
            return "(" + key1 + ", " + key2 + ")";
        }
    
        @Override
        public void readFields(DataInput arg0) throws IOException {
            key1.readFields(arg0);
            key2.readFields(arg0);
        }
    
        @Override
        public void write(DataOutput arg0) throws IOException {
            key1.write(arg0);
            key2.write(arg0);
        }
    
        public int compareTo(Pair p1) {
            int k = this.key1.toString().compareTo(p1.key1.toString());
    
            if (k != 0) {
                return k;
            } else {
                return this.key2.toString().compareTo(p1.key2.toString());
            }
        }
    
    }
    
  2. ==============================

    2.맵리 듀스를 실행하는 올바른 문자 클래스를 가져 job.Please 동안 같은 일이 저와 함께 발생합니다.

    맵리 듀스를 실행하는 올바른 문자 클래스를 가져 job.Please 동안 같은 일이 저와 함께 발생합니다.

    당신이 아래의 수입을 가져온 경우 해당 오류가 발생합니다 :

    import com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider.Text;
    

    이로 변경합니다.

    import org.apache.hadoop.io.Text;
    
  3. ==============================

    3.기본 생성자가 자동으로 제거됩니다 어떤 매개 변수가있는 생성자를 정의한 경우 귀하의 클래스는 기본 생성자가 있어야합니다. 당신은 명시 적으로 생성자를 정의해야합니다. 당신은 당신의 코드를 게재 할 수 있습니까?

    기본 생성자가 자동으로 제거됩니다 어떤 매개 변수가있는 생성자를 정의한 경우 귀하의 클래스는 기본 생성자가 있어야합니다. 당신은 명시 적으로 생성자를 정의해야합니다. 당신은 당신의 코드를 게재 할 수 있습니까?

    Class SampleClass
    {
      int a;
      public SampleClass(int param)
      {
        a = param;
      }
    
      public SampleClass()
      {
      }
    }
    
  4. from https://stackoverflow.com/questions/40630761/failed-error-java-io-ioexception-initialization-of-all-the-collectors-failed by cc-by-sa and MIT license