gpt4 book ai didi

java - spark checkpoint ".bk"和 ".crc"文件的功能是什么?

转载 作者:行者123 更新时间:2023-11-29 04:45:14 25 4
gpt4 key购买 nike

当我们为spark streaming应用程序设置checkpoint目录时,会生成这样一个目录:

root@55330815baa7:/usr/local/spark/checkpoint# ll
total 184
drwxr-xr-x 6 root root 4096 May 25 16:35 ./
drwxr-xr-x 18 500 500 4096 May 25 16:19 ../
drwxr-xr-x 2 root root 4096 May 25 16:19 643d19eb-b24b-4664-a865-a263bdd97625/
drwxr-xr-x 2 root root 4096 May 25 16:34 71b2204c-8762-4d75-bb34-f9b1b7a9b530/
drwxr-xr-x 2 root root 4096 May 25 16:19 c946e058-220e-4ae5-8db2-393c00b845d0/
-rw-r--r-- 1 root root 9658 May 25 16:35 checkpoint-1464193230000
-rw-r--r-- 1 root root 84 May 25 16:35 .checkpoint-1464193230000.bk
-rw-r--r-- 1 root root 84 May 25 16:35 .checkpoint-1464193230000.crc
-rw-r--r-- 1 root root 9712 May 25 16:35 checkpoint-1464193236000
-rw-r--r-- 1 root root 84 May 25 16:35 .checkpoint-1464193236000.bk
-rw-r--r-- 1 root root 84 May 25 16:35 .checkpoint-1464193236000.crc
-rw-r--r-- 1 root root 9773 May 25 16:35 checkpoint-1464193242000
-rw-r--r-- 1 root root 9773 May 25 16:35 checkpoint-1464193242000.bk

-rw-r--r-- 1 root root 88 May 25 16:35 .checkpoint-1464193242000.crc
-rw-r--
drwxr-xr-x 2 root root 4096 May 25 16:35 receivedBlockMetadata/

我们可以找到“.bk”文件和“.crc”文件,“.bk”文件是备份文件,但是“.crc”文件有什么作用呢?它是如何工作的?有人对此有想法吗?

最佳答案

CRC 代表循环冗余校验。它是一种错误检测代码,用于检测对原始数据的意外更改


示例来自 CRC on Wikipedia :

我们想用 3 位 CRC 对 14 位消息进行编码,多项式 x^3 + x + 1

假设我们有这条消息:11010011101100 (14 位)
我们使用多项式除数:1011 (代表 x^3 + x + 1)

计算是XOR

  1. 首先我们填充零以对应编码消息的位长度(14+3=17 位):
    11010011101100 000 <--- input right padded by 3 bits
    1011 <--- divisor (4 bits) = x³ + x + 1
    ------------------
    01100011101100 000 <--- result

  2. 通过在每一步中将除数向右移动 1 位(或更多)来迭代计算新结果:
    01100011101100 000 <--- result of step 1
    1011 <--- divisor
    00111011101100 000
    1011
    00010111101100 000
    1011
    00000001101100 000 <--- note that the divisor moves over to align with the next 1 in
    1011 the dividend (since quotient for that step was zero)
    00000000110100 000 (in other words, it doesn't necessarily move one bit per
    1011 iteration)
    00000000011000 000
    1011
    00000000001110 000
    1011
    00000000000101 000
    101 1
    ------------------
    00000000000000 100 <--- remainder (3 bits). Division algorithm stops here as dividend
    is equal to zero.

由于最左边的除数位将它接触的每个输入位清零,因此当此过程结束时,输入行中唯一可以非零的位是该行右端的 3 位。

这 3 位是除法步骤的余数,也将是 CRC 函数的值(除非所选的 CRC 规范要求进行一些后处理)。


收到消息的验证

可以通过再次执行上述计算轻松验证接收到的消息的有效性,这次添加的是校验值而不是零。如果没有可检测到的错误,余数应为零。


11010011101100 100 <--- input with check value
1011 <--- divisor
01100011101100 100 <--- result
1011 <--- divisor ...
00111011101100 100

......

00000000001110 100
1011
00000000000101 100
101 1
------------------
0 <--- remainder

关于java - spark checkpoint ".bk"和 ".crc"文件的功能是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37443804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com