2012-10-16 3 views
0

유닉스 서버와 hadoop 서버 사이에서 md5s를 비교해야합니다. 파이썬으로이 작업을하고 싶습니다. 비단뱀을 사용하고 싶습니다 hashlib하지만 만약 내가 할 수있는 이걸로 할 수 있는지 모르겠다 또는 stdin/stdout 일종 사용해야합니다.파이썬과 함께 hadoop에서 md5와 유닉스의 md5를 비교하는 방법이 있습니까?

+0

하둡과 파이썬 지원 MD5 모두. http://docs.python.org/library/hashlib.html 및 https://hadoop.apache.org/docs/r0.20.2/api/org/apache/hadoop/io/MD5Hash.html을 참조하십시오. 이 둘을 통합하기 위해 사용할 수있는 것은 무엇입니까? –

+0

파이썬을 사용하여 md5를 비교하고 싶습니다. 나는 hadoop 클러스터에있는 md5와 유닉스 박스의 md5를 비교할 필요가있다. – wDroter

+0

그리고이 MD5는 무엇에 관한 것입니까? 파일, 문자열, ...? –

답변

0

"hadoop"로 무엇을 의미하는지 확실히 알 수 없습니다. 나는 당신이 hadoop을 사용하여 특정 프로그램을 돌릴 수 있다고 믿는다. 당신은 md5 계산 루틴을 사용할 수 있습니다.

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

@Tichodroma - 감사합니다. –

0

당신이

hadoop fs -copyToLocal 

파이썬 예제 you'r 로컬 파일 시스템 로 다운로드 할 수 있습니다

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) 
관련 문제