我需要比较unix服务器和hadoop服务器之间的md5。我想用python做这个。我想使用pythons hashlib,但我不知道我是否可以用hadoop做这个,或者我是否必须使用某种stdin / stdout。
答案 0 :(得分:0)
不太确定你和#34; hadoop"的意思。我相信,你可以使用hadoop运行一个特定的程序。您可以使用md5计算例程。
import hashlib
hash = hashlib.md5()
hash.update( "stringformd5" )
hash.hexdigest()
答案 1 :(得分:0)
您可以将其下载到本地文件系统 与
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)