Shark + Spark + Tachyon 의 조합에서 Hive 대비 수십배의 성능을 보고 흥분하던 순간이 있었지만, 그 흥분은 오래가지 못했다...
운영 M/R Batch 에 실적용하는 경우 Heap Memory 관련 에러가 너무 자주 발생하였고, 기타 여러가지 에러들로 인하여, 안정성이 매우 떨어 졌기 때문...
결국, 한동안 저 조합의 사용을 접고 있다가, 다시 Shark 와 Tachyon 의 콜라보레이션을 포기하고, 최신 버전의 Spark 에서 Scala 랭귀지로만 접근하여, Spark 엔진을 다시한번 우리 운영(Production) M/R Batch 에 적용 해 보기로 결심 하였다.
우선 찾은 유용한 아티클은 다음과 같다.
(1) Using Parquet and Scrooge with Spark
http://engineering.ooyala.com/blog/using-parquet-and-scrooge-spark
우리가 현재 Parquet 포맷을 쓰고 있기 때문에, 제일 먼저 검색 했던 것이, Parquet 와의 Compatibility Issue 였다. Shark에서의 Parquet Compatibility Issue 때문에 한두번 쓴맛을 본적이 있기 때문에, 아직 안심하긴 힘들지만, 어찌 되었든, 좋은 참고 모델이 생겨 안심이다.
(2) scrooge
https://twitter.github.io/scrooge/
https://github.com/twitter/scrooge
트위터는 이미 cascading 위에서 scala 기반으로 scalding 을 잘 쓰고 있어서이겠지만, 요런 유용한 scala 확장 응용모듈들을 많이 보유하고 있다. scala 로 spark 를 헨들링함에 있어, 다양한 우리쪽 다른 Data 원천과도 멀티소스 Join 이 필요할 것이므로,(예를 들어 HBase 나 MemCached 와...) scrooge 같은 thrift 제너레이터가 유용하게 쓰일 수 있을 듯 하다.
댓글 없음:
댓글 쓰기