복붙노트

[HADOOP] Hadoop 및 HDFS에 의존하지 않고 Java를 사용하여 마루판을 읽고 쓸 수 있습니까?

HADOOP

Hadoop 및 HDFS에 의존하지 않고 Java를 사용하여 마루판을 읽고 쓸 수 있습니까?

나는이 질문에 대한 해결책을 찾고있다.

HDFS 및 Hadoop에 의존하지 않고 Java 프로그램에 Parquet 형식을 읽고 쓰는 것을 포함 할 수있는 방법이 없다고합니다. 이 올바른지?

Hadoop 클러스터 외부의 클라이언트 시스템에서 읽고 쓰고 싶습니다.

Apache Drill에 대해 흥미를 느끼기 시작했으나 별도의 프로세스로 실행해야합니다. 내가 필요한 것은 Parquet 형식을 사용하여 파일을 읽고 쓸 수있는 in-process 기능입니다.

해결법

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

    1.당신은 자바 마루 클라이언트 API를 사용하여 측면 hadoop 클러스터 밖으로 쪽모작을 작성할 수 있습니다.

    당신은 자바 마루 클라이언트 API를 사용하여 측면 hadoop 클러스터 밖으로 쪽모작을 작성할 수 있습니다.

    다음은 parquet 포맷을 로컬 디스크에 작성하는 java의 샘플 코드입니다.

    {
    final String schemaLocation = "/tmp/avro_format.json";
    final Schema avroSchema = new Schema.Parser().parse(new File(schemaLocation));
    final MessageType parquetSchema = new AvroSchemaConverter().convert(avroSchema);
    final WriteSupport<Pojo> writeSupport = new AvroWriteSupport(parquetSchema, avroSchema);
    final String parquetFile = "/tmp/parquet/data.parquet";
    final Path path = new Path(parquetFile);
    ParquetWriter<GenericRecord> parquetWriter = new ParquetWriter(path, writeSupport, CompressionCodecName.SNAPPY, BLOCK_SIZE, PAGE_SIZE);
    final GenericRecord record = new GenericData.Record(avroSchema);
    record.put("id", 1);
    record.put("age", 10);
    record.put("name", "ABC");
    record.put("place", "BCD");
    parquetWriter.write(record);
    parquetWriter.close();
    }
    

    avro_format.json,

    {
       "type":"record",
       "name":"Pojo",
       "namespace":"com.xx.test",
       "fields":[
          {
             "name":"id",
             "type":[
                "int",
                "null"
             ]
          },
          {
             "name":"age",
             "type":[
                "int",
                "null"
             ]
          },
          {
             "name":"name",
             "type":[
                "string",
                "null"
             ]
          },
          {
             "name":"place",
             "type":[
                "string",
                "null"
             ]
          }
       ]
    }
    

    희망이 도움이됩니다.

  2. from https://stackoverflow.com/questions/42078757/is-it-possible-to-read-and-write-parquet-using-java-without-a-dependency-on-hado by cc-by-sa and MIT license