보물창고/Big Data2013.03.30 22:30










C#으로 맵 리듀스 코딩해서 HDInsight hadoop streaming 사용하는 방법 입니다

HDInsight hadoop streaming C# map reduce test





관련된 다른 글

hadoop streaming 소개

Hadoop Streaming 구조

HDInsight hadoop streaming C# map reduce test








HDInsight hadoop-streaming-1.1.0-SNAPSHOT.jar을 이용










hadoop dfs -rmr a/

hadoop dfs -mkdir a/

hadoop dfs -put map.exe a/

hadoop dfs -put reduce.exe a/

hadoop dfs -put pic.txt a/

필요한 파일을 하둡으로 put











hadoop jar hadoop-streaming-1.1.0-SNAPSHOT.jar -files "hdfs:///user/Administrator/a/0map.exe,hdfs:///user/Administrator/a/0reduce.exe" -input "/user/Administrator/a/pic.txt" -output "/user/Administrator/a/result" -mapper "0map.exe" -reducer "0reduce.exe"

명령어 실행











result 결과 내용을 get 명령어를 이용해서 hadoop 밖으로 꺼냄





신고





Posted by 파란물
보물창고/Big Data2013.03.29 23:30









hadoop streaming 소개 

영문 원문 주소

http://hadoop.apache.org/docs/stable/streaming.html


위 영문 문서 위쪽 기본 내용을 번역 했습니다





관련된 다른 글

hadoop streaming 소개

Hadoop Streaming 구조

HDInsight hadoop streaming C# map reduce test







Hadoop streaming


하둡 스트리밍은 Hadoop배포와 함께 제공되는 유틸리티입니다

이 유틸리티는 당신이 스크립트 또는 실행 파일로 만든 mapper 및 reduce로 Map/Reduce job을 작성하고 실행할 수 있습니다



$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar -input myInputDirs -output myOutputDir -mapper /bin/cat -reducer /bin/wc



How Streaming Works


위의 예에서, mapper과 reduce모두 stin(line by line)으로 입력을 읽고 stdout으로 출력을 실행합니다

이 유틸리티는 Map/Reduce job을 만듭니다

적절한 클러스터 job을 제출하고 완료 될 때까지 진행 상황을 모니터링 할 수 있습니다


mappers에 실행 파일이 지정된 경우, 각 mapper 테스크는 mapper를 초기화하는 별도의 프로세스로 실행 파일을 실행 합니다

mapper 테스크가 실행되면서, line으로 입력을 변환하고 프로세스의 stdin으로 line를 feed합니다.

한편 mapper는 mapper 프로세스의 stdout에서 line으로 출력을 모으고 key/value쌍으로 각 행을 변환후 mapper의 출력으로 모입니다

기본적으로, 탭 문자를 기준으로 앞쪽은 key이고 뒤쪽은 value가 될 것입니다(탭 문자 제외)

line에 탭 문자가 없는 경우, 전체 line을 key로 간주하고 value는 null입니다

나중에 설명하지만 사용자가 정의할 수도 있습니다


reduce에 실행 파일이 지정된 경우, 각 reduce 테스크는 reducer을 초기화 하는 별도의 프로세스로 실행파일을 실행 합니다

reducer 테스크가 실행되면서 line에 입력 key/value 쌍으로 변환하고 프로세스의 stdin입력으로 line를 feed합니다

한편, reducer는 프로세스의 stdout에 line형식으로 출력을 모으고 key/value쌍으로 각 행을 변환 후 reduce의 출력이 모입니다

기본적으로, 탭 문자를 기준으로 앞쪽은 key이고 뒤쪽은 value가 될 것입니다(탭 문자 제외)

나중에 설명하지만 사용자가 정의할 수도 있습니다


이 Map/Reduce프레임 워크 및 스트리밍 maper/reducer사이의 통신프로토콜의 기초 입니다







출처 : http://chiangbing.blogspot.kr/

key,value 데이이터가 mapper로 가면 hadoop streaming로 key + \t + value형식으로 변환되어 STDIN으로 map.exe에 전달이 됩니다 map.exe는 연산 후 STDOUT으로 key + \t + value 형식으로 출력하면 mapper는 key,value로 변환 후 정렬과 병합 과정을 거치고 reducer로 전달이 됩니다

reduce는 hadoop streaming으로 key + \t + value형식으로 변환된 데이터를 STDIN reduce.exe로 전달합니다 reduce.exe는 연산 후 STDOUT으로 key + \t + value 형식으로 출력하면 reduce는 key,value로 변환 후 output데이터를 만듭니다

신고





Posted by 파란물
보물창고/Big Data2013.03.29 23:00








HDInsight hive ODBC 0.4.0이전 버전과 이후 버전 비교입니다


정확하게 언제 바뀐 ODBC인지는 모르겠습니다

다만 2013년 3월 25일 HDInsight가 0.4.0.0으로 업데이트 되면서 hiveODBC를 새로 받아 봤는데 변경된 내용들이 있어서 정리합니다


아래 설명은 제가 확인한 3월 25일 기준으로 눴습니다










그림으로 보시면 이렇습니다

예전 Hive ODBC버전에서는 0.4.0.0에 접근이 안됩니다

3월 25일 버전에서 HDInsight 0.3.0버전에도 접근 안될거라는 예상을 해 봅니다







추가로 엑셀 2013에 hive버튼이 보이지 않습니다 

아래는 그와 관련해서 해결해보려고 시도한 내용을 정리 했습니다









ODBC접근 테스트는 엑셀에서 해봤습니다


EXCEL 옵셕 -> 추가기능 -> 관리 -> COM 추가 기능에

 HIVEExcel이 표시되지 않습니다











hiveODBC설치는 3월25일 이후를 설치하고

3월 35일 이전 버전의 addin설치 파일을 보관했다가 임의로 설치 후 시도 했으나 접근이 안됩니다

PowerPivot에서 ODBC로 데이터를 가져오는 과정에서도 접근 안됩니다







---------------------------

Hive Error

---------------------------

Unable to retrieve Hive object list. Details:


ERROR [08001] Unable to establish connection with hive server


ERROR [01004] Out connection string buffer not allocated


ERROR [01000] Batch size not set or is invalid. Defaulting to 65536.

---------------------------

확인   

---------------------------









3월 25일 이후 HiveODBCDriverSetupx64.msi 설치된 파일









3월 25일 이전 HiveODBCDriverSetupx64.msi 설치한 폴더 파일

HiveExcel.vsto

HiveExcel.dll.manifest

HiveExcel.dll

Microsoft.Office.Tools.Common.v4.0.Utilities.dll

이 파일들이 더 있습니다






3월 25일에 확인한 hive는 엑셀에 hive버튼을 추가하진 않지만

PowerPivot에서 사용할 데이를 hive ODBC를 통해 가져올 수는 있었습니다

신고





Posted by 파란물






인브레인 힐링 캠프 후기 입니다








 현충일이 휴일이라는 점을 이용해 현충일 전날 퇴근을 캠핑장으로 했습니다. 이번 힐링 캠프에서는 수원에서 일하시는 직원 모두 모여  업무의 스트레스를 풀고  친목 도모를 위한 시간을 가졌습니다.







 먼저 선발대가 마트에서 장을 보면서 필요한 물품을 구입했습니다

 물품을 꼼꼼히 챙기면서 시간을 최대한 아끼기 위해 각자 맡은 물품을 각각 챙겨오는 방식으로 최대한 효율적인 장을 봤습니다









 12인 분의 장을 처음본 저는 식재료가 쌓이는것을 보면서 많은 양에 입을 다물수가 없었습니다. 매장 직원 분들도 이렇게 많이 사는것을 보면서 모임 크게 하시나봐요? 라고 놀란 질문도 해주셨습니다





이날 저희가 간곳은 미라클워터월드 오토캠핑장 입니다

http://miraclewaterworld.com/twater/main/main.asp











텐트치는 중



캠핑장으로 이동해서 텐트를치고 숯과 장작에 불을 붙이며 숙영 준비와 저녁 식사 진비를 하는 모습입니다

 캠핑을 처음하는 저는 돕는다고 돕는게 왠지 방해만 되었고 서툴어서 결국은 다른 분들이 직접해주시는 사태까지 일어 났습니다. 서툴러서 재대로 하지 못했지만 캠핑의 맛은 이렇게 준비하고 챙기는게 아닐까 생각됩니다 모든게 편하게 되어있는 곳에 몸만 가서 쉬는것과는 다른 재미가 있었습니다.







고기와 밥이 준비되면서 "막걸리" "소주" "양주" "오가피주" "맥주"와 함께 맛있는 저녁식사시간이 시작 되었습니다 







- 인브레人의 밤


밤이 깊어지면 깊어질수록 분위기는 더욱 무르익었습니다







다음날 자고 일어났는데 저희만 이곳에서 잔게 아니었습니다

불청객이 저희 빵을 맛보고 간듯 합니다








역시 캠핑장의 낭만은 아침에 해먹는 계란 프라이와 장작에 구운 토스트가 아닐까 생각됩니다

(주 : 실제는 사진과 달랐습니다)




 

 캠핑이라는것을 경험해 볼 수 있는 기회가 있어서 너무 좋았습니다. TV에서만 보는 캠핑이라는것을 해보게되고 나중에 입문 할때도 이번 경험으로 제대로된 준비를 할 수 있게 되었습니다.


 직장내에서 어려웠던 분들과 이야기를 해 볼 수 있는 시간이 되었습니다. 보통 식당에서 회식을 하는 것과는 다르게 뭔가 활동을 하면서 자연 스럽게 이야기를 나눌 수 있는 분위기가 신입인 저에게는 너무나 좋은 시간이였습니다. 저에게 해주신 조언들과 직접 말씀은 안해주셨어도 느낌으로 알 수 있었던 이야기들 모두 감사합니다.




신고





Posted by 파란물