Google Nexus에서 mapreduce를 성공적으로 실행 한 사람들에 대해 들어 봤습니다. 안드로이드에서 전체 클러스터 된 mapreduce를 실행하는 성능에 대한 더 이상의 정보는 없습니다.휴대용 장치에서 mapreduce 실행
비교적 적은 양의 데이터가 클러스터 된 모드에서 내 전화에서 mapreduce를 실행하고 싶습니다. 완전히 hadoop을 사용할 가치가 있습니까? 어디서나 사용할 수있는 버전이 있습니까? 어떤 대안?
Google Nexus에서 mapreduce를 성공적으로 실행 한 사람들에 대해 들어 봤습니다. 안드로이드에서 전체 클러스터 된 mapreduce를 실행하는 성능에 대한 더 이상의 정보는 없습니다.휴대용 장치에서 mapreduce 실행
비교적 적은 양의 데이터가 클러스터 된 모드에서 내 전화에서 mapreduce를 실행하고 싶습니다. 완전히 hadoop을 사용할 가치가 있습니까? 어디서나 사용할 수있는 버전이 있습니까? 어떤 대안?
map reduce와 같은 프로세스 사용의 전체 요점은 여러 컴퓨터에 작업 부하를 분할하여 동시에 현재 컴퓨터에서 동시성을 구현할 수 없게하는 것입니다. 여러 안드로이드 장치를 연합 할 계획이 없다면 hadoop과 같은 것을 사용할 필요가 거의 없습니다.
기기에있는 모든 데이터를로드 할 수 있다면 (즉, 할 수있는 말). 병렬로 알고리즘을 실행하는 데 가장 가까운 것은 다중 스레드를 사용하고 데이터 세트를 분할하는 것입니다. 병렬 프로그래밍의 이점을 얻으려면 맵 축소 스타일 프로그래밍을 할 필요가 없으며 단지 알고리즘을 제작자/소비자 모델로 개발하는 것이 더 쉽습니다. 그러나, 만약 당신이 그것을 가지고 있다면 여기에 그것을 할 수있는 방법이 있습니다.
두 개의 BlockingQueues (in-queue 및 out-queue)와 파일 (예 : Producer)에서 데이터를 읽는 스레드로 시작합니다. in-queue에서 읽고 out-queue에 쓸 스레드 풀을 만듭니다. 각 스레드는 하나의 입력 (즉, 소비자)에 대한 계산을 수행하고 결과를 출력 대기열에 게시하여 생산자가 결과를 수신 할 수 있도록합니다. 인 큐 및 아웃 큐를 한 번 통과하면 맵 축소 프로세스의 절반이 수행됩니다. 이것은 일반적으로 생산자/소비자라고합니다. 그 스타일 아키텍처로 많은 것을 할 수 있습니다.
전체 맵 축소를 수행하려면 축소 단계가 병렬로 실행되도록 프로세스를 반복하십시오. 생산자는지도 단계의 모든 결과를 키별로 수집하여 다시 대기열로 공급합니다. 이제 각 소비자는 줄이기 단계를 수행하고 결과를 아웃 큐에 게시합니다. 여기서 생산자는 최종 정렬을 수행하고 결과를 UI에 표시합니다.
소비자 상태 전환은 다음과 같습니다
비올라지도 안드로이드의 스타일 프레임 워크를 줄입니다.