Spark Tips

1. Loop를 쓰는 순간 OutOfMemoryError DataFrame를 다루지 않는 순간 Spark cluster 중 Driver만 사용하게 된다. DataFrame을 안씀 (= 기껏 sqlContext.read로 읽어놓고 collect해서 사용함) -> 스파크가 아니라 스칼라에서 돌아감 (= Executor가 아니라 Driver에서 돌아감) -> Single node computing -> Out of Memory 2. UDF를 사용할 때 a) 파라미터에 Primitive Type을 넣지 않는 것을 추천 Scala기준으로 설명한다. […]

Spark DF Load Error with MariaDB Connector

연구실에서 이것 저것 크롤링해놓은 것(주로 공공데이터)을 MariaDB에 해놓았다. 이제 MariaDB로부터 데이터를 불러와서 분석하려고  Zeppelin에서 MariaDB connector jar를 로드한 뒤에 DataFrame으로 테이블을 가져오려니 int column를 가져올 때 너무 큰 값을 가져오고 있다면서 connection이 죽어버리는 문제가 발생했다. (value i is not in Integer range) 구글링으로 MariaDB Jira에서 관련 이슈를 찾아냈고, 해결됐다고 생각하면 다시 부활하는 이상한 버그인 것 같았다. […]

Spark Standalone Cluster with Docker Swarm

이번에 연구실에서 Apache Spark Cluster를 구축할 일이 있어서 구축 방법을 문서화했다. 이 포스트에서는 그 문서에 살점을 조금 더 붙여서 올려본다. 아울러 데이터가 최대한 내부망에서 처리되는 것을 원하시는 교수님 + 클라우드로 연구비를 사용하기 힘듦 등의 이유로 AWS를 사용할 수 없는 환경이라 직접 설치 / 설정했음을 밝혀둔다. Why Standalone? YARN, Mesos, Kubernetes와 같은 방법 대신에 왜 Docker […]

Ubuntu 18.04 Java InvalidAlgorithmParameterException

Android를 빌드하다가 만난 에러. Java에서 https를 통해 파일을 다운받으려는 경우, https로 통신을 하는 경우에 발생한다. 단순히 이 에러로만 검색해서 나오는 자료들로는 이 문제를 해결할 수 없다. 위 gist를 그대로 실행하면 문제를 해결할 수 있다. (stackoverflow link) 추가) building your project, you need to accept the license agreements and complete the installation of the missing components […]

Convert Scala Map to JSON with lift-json

Tested Env: Scala 2.11, lift-json_2.11-2.6.3 Ref: https://github.com/lift/lift/blob/master/framework/lift-base/lift-json/src/main/scala/net/liftweb/json/JsonAST.scala#L327 1. Normal Scala Map m ‘s type: Map[String, Any] 2. Use lift-json’s implicit Cast Map[String, Any] to Map[String, JValue] explicitly. 3. Convert Map[String, JValue] to JObject 4. Generate String from JObject 5. But! It cannot convert List that contains Map (List[Map]), since lift-json doesn’t have implicit function for converting Map to JValue. I […]