2011-12-06 2 views
4

Hadoop Map-Reduce를 실험하고 있으며 테스트에서 저용량 출력을 HBase에 저장할 수 있습니다. 그러나, 나는 HBase 대신 mysql 데이터베이스에 데이터를 쓰고 싶다. 매퍼는 여전히 HBase에서 입력 데이터를 읽습니다. 나는 이것을 발견했으나 출력에서만 MySQL을 사용해야한다. 또한 link 위의 새로운 패키지 org.apache.hadoop.mapreduce를 사용할 수있는 org.apache.hadoop.mapred 패키지의 일부 deprecated 클래스를 사용하지만 지금까지는이 새로운 패키지를 사용하는 자습서를 찾을 수 없습니다.Hadoop Reducer에서 MySQL에 데이터 쓰기

답변

1

나는 이것을 발견했지만 입력과 출력 모두에서 MySQL을 사용해야한다. 출력에만 필요하다.

InputFormat (DBInputFormat)은 OutputFormat (DBOutputFormat)과 독립적입니다. Mapper에서 HBase를 읽고 Reducer에서 DB에 쓸 수 있어야합니다.

새로운 MR API로 Job # setInputFormat 및 Job # setOutputFormat을 설정하고 이전 MR API로 JobConf # setInputFormat 및 JobConf # setOutputFormat을 필요한 입출력 형식으로 적절하게 설정합니다. 이 두 형식은 동일 할 필요는 없습니다. 필요한 경우 매퍼의 XML을 읽고 Reducer의 대기열에 쓸 수 있어야합니다.

또한, 위의 링크 그러나 나는이를 사용하는 자습서를 찾을 수 없습니다 생각, 새로운 패키지 org.apache.hadoop.mapreduce 지금 사용할 수있는 org.apache.hadoop.mapred 패키지에서 일부 사용되지 않는 클래스를 사용하여 지금까지 새로운 패키지.

이전 API에 익숙하다면 계속 사용하십시오. 새 API와 이전 API 간의 기능에는 not much difference이 있습니다. 이전 API와 새 API에 대한 두 개의 DBInputFormat이 있습니다. Old/new InputFormats와 이전/새로운 MR API를 혼합하지 않도록하십시오.

여기에 새 API에 대한 tutorial이 있습니다.

+0

나는 또한 이것과 같은 새로운 API를 사용한다고 생각했다. 그러나 DBConfiguration 클래스의 어느 시점에서 NPE를 얻고 있습니다. 그래서, DBInputFormat, DBConfiguration 및 DBOutputFormat의 적절한 사용을 모색 중입니다. – vikas

+1

마지막 링크를 가져 주셔서 감사합니다. 나는 [튜토리얼] (http://sonerbalkir.blogspot.com/2010/01/new-hadoop-api-020x.html)에 대한 의견을 통해 문제를 발견했다. 내 문제는 그 튜토리얼에서 저자의 첫 번째 의견에 대한 회신으로 해결되었습니다. – vikas

관련 문제