91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop的I/O 操作是什么

發布時間:2021-10-20 16:52:35 來源:億速云 閱讀:225 作者:柒染 欄目:大數據

Hadoop的I/O 操作是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1.數據完整性

  • 檢測數據是否損壞

    • 在數據第一次引入系統時計算校驗和并在數據通過一個不可靠的通道進行傳輸時再次計算校驗和

    • 校驗和也是可能損壞的

    • 錯誤檢測碼CRC-32 HDFS 使用的是一個更有效的變體CRC-32C

  • HDFS 的數據完整性

    • 對寫入的所有數據計算校驗和,并在讀取數據時驗證校驗和

    • hadoop fs -checksum 檢查一個文件的校驗和

    • LocalFileSystem 執行客戶端的校驗和驗證

    • ChecksumFileSystem

2.壓縮

  • 優勢:減少存儲文件所需要的磁盤空間,并加速數據在網絡和磁盤上的傳輸

    壓縮格式工具算法文件擴展名是否可切分
    DEFLATEDEFLATE.deflate
    gzipgzipDEFLATE.gz
    bzip2bzip2bzip2.bz2
    LZOlzopLZO.lzo
    LZ4LZ$.lz4
    SnappySnappy.snappy
  • 所有壓縮算法都需要權衡空間/時間

  • bzip2的壓縮能力強于gzip,但速度慢

  • codec

壓縮格式HadoopCompressionCodeC
gziporg.apache.hadoop.io.compress.GzipCodeC
bzip2org.apache.hadoop.io.compress.BZip2Codec
  • 最好使用原生類庫,而不是Java實現

  • 大量壓縮和解壓縮,可以考慮使用CodecPool

  • 壓縮和輸入分片

  • 在MapReduce 中使用壓縮

public static void main(String[] args) throws Exception {
        if (args.length != 2) {
            System.err.println("Usage: MaxTemperatureWithCompression <input path> <output path>");
            System.exit(-1);
        }
        Job job = new Job();
        job.setJarByClass(MaxTemperature.class);
        job.setJobName("Max Temperature");

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        FileOutputFormat.setCompressOutput(job, true);
        FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);

        job.setMapperClass(MaxTemperatureMapper.class);
        job.setCombinerClass(MaxTemperatureReducer.class); //減少 map 跟reducer 之間的數據傳輸
        job.setReducerClass(MaxTemperatureReducer.class);

        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
  • 對map任務輸出進行壓縮

3.序列化

定義:序列化是指將結構化對象轉化為字節流以便在網絡上傳輸或寫到磁盤進行永久存儲的過程,反序列化是指將字節流轉回結構化對象的逆過程

序列化用于分布式數據處理的兩大領域:進程間通信和永久存儲

  • Writable 接口

    void write(DataOutput out) throws IOException;
    void readFields(DataInput in) throws IOException;


  • IntWritable

  • WritableComparable

  • org.apache.hadoop.io

  • VIntWritable VLongWritable (變長格式會更節省空間)

  • Text 最大2GB

4.基于文件的數據結構

  • 關于SequenceFile

    • 適合二進制類型的數據

    • hadoop fs -text numbers.seq|head

  • 關于MapFile

    • MapFile 是已經排過序的SequenceFile,它有索引,所以可以按鍵查找。索引自身就是一個SequenceFile,包含了map中的一小部分健

  • Avro 數據文件

  • 以上幾個都是面向行的數據格式,還有面向列的格式 RCFile

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆回县| 海伦市| 报价| 大石桥市| 闻喜县| 民和| 天门市| 凤阳县| 全州县| 武定县| 正定县| 连南| 黄平县| 名山县| 新丰县| 城口县| 韶关市| 双鸭山市| 扬中市| 当阳市| 仲巴县| 布尔津县| 扎兰屯市| 嘉禾县| 舟山市| 广德县| 宝丰县| 海城市| 大名县| 九寨沟县| 樟树市| 寻乌县| 宜都市| 二手房| 揭西县| 柘城县| 库车县| 临湘市| 乐亭县| 武宣县| 无锡市|