有没有办法比较unix上的md5和python上hadoop上的md5?

lx0bsm1f  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(401)

我需要比较unix服务器和hadoop服务器之间的md5s。我想用python做这个。我想使用pythons hashlib,但是我不知道我是否可以用hadoop实现这个功能,或者我是否必须使用某种stdin/stdout。

z9zf31ra

z9zf31ra1#

不太清楚你说的“hadoop”是什么意思。我相信,你可以用hadoop运行一个特定的程序。因为你可以使用md5计算例程。

import hashlib
hash = hashlib.md5()
hash.update( "stringformd5" )
hash.hexdigest()
y3bcpkx1

y3bcpkx12#

你可以下载到你的本地文件系统

hadoop fs -copyToLocal

python示例:

import hashlib
import subprocess

def md5_for_file(f, block_size=2**20):
    md5 = hashlib.md5()
    while True:
        data = f.read(block_size)
        if not data:
            break
        md5.update(data)
    return md5.digest()

bashCommand = "hadoop fs -copyToLocal" + from + " " + to
hash = hashlib.md5()
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
print md_for_file(to)

相关问题