[HADOOP] MapReduce, Python 및 NetworkX
HADOOPMapReduce, Python 및 NetworkX
필자는 NetworkX를 사용하여 파이썬으로 작성한 그래프에 대해 가중치없는 무작위 걸기 함수를 구현했습니다. 아래는 무작위 걸음을 다루는 내 프로그램의 스 니펫입니다. 내 프로그램의 다른 곳에서는 그래프를 만드는 메서드가 있고 필자가 작성한 다양한 사용자 지정 그래프 테스트 메서드를 시뮬레이트하는 메서드가 있습니다. 이 그래프 테스트 방법 중 하나는 그래프에서 두 노드를 무작위로 선택하고 두 노드 사이에서 임의의 보행을 실행합니다. 이 Random Walk에서 계산되는 두 가지 요소는 시간 (시작 지점에서 끝 지점까지 이동하는 링크 수)과 출퇴근 시간 (시작 지점에서 끝 지점으로 그리고 시작 지점으로 돌아가는 링크 수 ).
def unweighted_random_walk(starting_point,ending_point, graph):
'''
starting_point: String that represents the starting point in the graph
ending_point: String that represents the ending point in the graph
graph: A NetworkX Graph object
'''
##Begin the random walk
current_point=starting_point
#current_node=graph[current_point]
current_point_neighors=graph.neighbors(current_point)
hitting_time=0
#Determine the hitting time to get to an arbitrary neighbor of the
#starting point
while current_point!=ending_point:
#pick one of the edges out of the starting_node with equal probs
possible_destination=current_point_neighbors[random.randint(0,current_point_neighors)]
current_point=possible_destination
current_point_neighbors=graph.neighbors(current_point)
hitting_time+=1
return hitting_time
랜덤 워크에 대한 코드는 끝점에 도달 할 때까지 임의의 노드를 선택하기 때문에 꽤 간단합니다. 그러나이 현재 구현은 여러 임의의 실행을 시도 할 때 매우 느립니다 (어느 시점에서 백만을 실행해야한다고 생각합니다).
내 질문입니다 : Hadoop MapReduce를 사용하여이 임의의 워크에 대해 수행중인 작업 중 일부를 병렬화 할 수있는 방법이 있습니까? 무작위로 걸을 수있는 더 좋은 방법이 있습니까?
해결법
-
==============================
1.귀하의 질문에 답변하십시오 :
귀하의 질문에 답변하십시오 :
자, 특정 코드에 관해서는 ...
또한보십시오
편집 : Jesse Noller의 프리젠 테이션 및 Disco에 대한 링크가 포함되어 있습니다.
-
==============================
2.map-reduce가 당신을 도울 수있는 방법을 모르겠습니다. 첫 번째 부분은 많은 다른 데이터 요소에서 독립적으로 수행 할 수있는 계산이고 두 번째 부분은 어떻게 든 모든 결과를 결합하는 두 부분 연산을 사용하는 경우에 사용됩니다. 아마이 무작위 걸음을 돕기 위해 map-reduce를 사용하는 영리한 방법이 있지만 나는 그것을 보지 못합니다.
map-reduce가 당신을 도울 수있는 방법을 모르겠습니다. 첫 번째 부분은 많은 다른 데이터 요소에서 독립적으로 수행 할 수있는 계산이고 두 번째 부분은 어떻게 든 모든 결과를 결합하는 두 부분 연산을 사용하는 경우에 사용됩니다. 아마이 무작위 걸음을 돕기 위해 map-reduce를 사용하는 영리한 방법이 있지만 나는 그것을 보지 못합니다.
무작위 걸음은 완전히 무작위입니다. 계속 진행하기 전에 동일한 두 노드간에 앞뒤로 건너 뛰고 많은 루프가 생길 수 있습니다. 아마도 당신은 어떻게 든 그것을 제약하기를 원할 것입니다. 그래서 당신은 검색 할 공간이 너무 넓지는 않습니까?
-
==============================
3.이 백서에 설명 된 공식을 사용하면 실제로 무작위 걸음을 수행 할 필요가 없습니다.
이 백서에 설명 된 공식을 사용하면 실제로 무작위 걸음을 수행 할 필요가 없습니다.
from https://stackoverflow.com/questions/1694237/mapreduce-python-and-networkx by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 네임 노드 UI - 파일 시스템이 가상 분산 모드에서 작동하지 않음 (0) | 2019.07.30 |
---|---|
[HADOOP] Windows에서 관리자 권한이없는 Hadoop MR 작업 실행 (0) | 2019.07.30 |
[HADOOP] 하둡 하이퍼 큐브 (0) | 2019.07.30 |
[HADOOP] 우분투 마스터와 윈도우 슬레이브를 이용한 Hadoop 클러스터 설정 (0) | 2019.07.30 |
[HADOOP] Ruby를 사용하여 Hadoop HDFS에서 파일을 쓰고 읽는 방법? (0) | 2019.07.30 |