소프트웨어 개발/Scala - Functional 38

실사용에 있어 스칼라의 문제와 코틀린

스칼라의 사용상 문제점이라고 느꼈던 부분은 사실 여러가지가 있다. 일단 안드로이드 대표 JVM 언어인 코틀린과 비교하면, 더욱더 유연한 편이지만 전체적으로는 가독성이 떨어지는 경우가 있다고 느낀다. 메서드 호출메서드 호출은 ()없이 가능한데, 이는 사실은 가끔은 코드의 비일관성을 불러온다. 대부분의 언어는 변수에 있어, 혹은 함수자체를 일등시민으로 인자로 넘길때 그 명칭만을 써준다. 그리고 실제로 메서드 콜을 할때는 ( ) 를 통해 호출한다. 스칼라는 나름 규칙은 있지만, 메서드 콜에 있어 뭔가 일관적이지 않은 느낌을 준다.물론 유연한 호출은 DSL 을 파생시킬때 유용할수있다는 느낌은 오지만, 일단은 갖가지 코드가 혼재될수있다. 장황함물론 스칼라는 장황한 언어를 지양한다. 심지어는 변수명조차 컨벤션과 다..

스칼라로 인공신경망 맛보기 구현

대부분의 딥러닝 참고자료는 파이썬이 제일 많을수밖에 없고, 그다음이 간단한것들은 R로 래핑한 라이브러리를 써서 실제적으로는 파이썬과 큰 차이가 없어보인다. 사실 파이썬래핑이 되어있는 라이브러리들도 충분히 빠르기 때문에 JVM에서 오는 이점이 크지는 않아 보이지만 자바 생태계는 기존에 존재하는 기업 소프트웨어등에서 큰 힘을 발휘하는데 실제적으로 소프트웨어를 만들어 팔아먹을때 큰 힘이 되지 않나 싶다.스칼라는 개발에서는 완전히 대세는 아니지만 실무형 프로그래밍에서는 다음 세대의 언어로까지 최근까지도 언급이 되었으며, 안드로이드 개발 등에서는 조금더 실용적인 코틀린등이 언급되기는 하지만 그래도 어느정도 소프트웨어 개발로써는 생각해볼만한 언어정도는 되는 듯하다.결국 박사님들이 창출해내신 기가막힌 딥러닝 알고리즘..

Spark 개발세팅 환경 연구 - SBT 외 스켈레톤 프로젝트 생성 및 의존성 추가

Spark를 개발하기 위해서는 내동 Spark-Shell을 켜놓고 콘솔작업만을 할수는 없다. 혹자는, 스파크는 쉘을 통해, 그리고 같은 코드를 바로 스칼라로 개발하면서 시제품과 실제 프로덕션 레벨과의 차이가 좁아진다고는 하지만 어쨌든간에 제대로된 개발 환경을 구동시키는 것은 쉬운일은 아닌것으로 보인다. 일단은 장인은 도구탓을 하지 않는다지만, 본인은 장인이라기 보다는 생선에 가깝기 때문에 아래의 사이트를 참조해서,http://spark.apache.org/developer-tools.htmlintelliJ에 스칼라 플러그인을 깔고, 그 후일을 도모한다. 설명에 따르면 아래와 같다.Download IntelliJ and install the Scala plug-in for IntelliJ.Go to Fil..

Spark 의 애플리케이션 실행할때의 프로세스

spark-submit 을 이용해서 애플리케이션 실행spark-submit은 드라이버 프로그램을 실행, 사용자는 main()메서드 호출드라이버 프로그램은 클러스터 매니저에게 익스큐터 실행을 위한 리소스 요청클러스터 매니저는 익스큐터 실행드라이버는 단위 작업 형태로 익스큐터에게 보냄.익스큐터는 이를 실행끝이나면 익스큐터 중지 후 클러스터 매니저에 사용했던 자원 반환

Spark 멀티노드 슬레이브 활성화 및 에러노트

Spark를 설치하려면, 일단은 아래를 따라한다http://data-flair.training/blogs/install-deploy-run-spark-2-x-multi-node-cluster-step-by-step-guide/설치는 그렇게 어렵지 않다. 1) 모든 노드에 자바 및 스파크 , 스칼라 설치2) 비밀번호 필요없도록 ssh키 공유3) hosts파일 변경 (/etc/hosts)4) conf파일 변경 (spark-env.sh, slave)5) sbin/start-all.sh 밑에는 에러노트starting org.apache.spark.deploy.master.Master, logging to /usr/local/spark/logs/spark-rakyunkoh-org.apache.spark.deplo..

라즈베리파이와 똥컴으로 하둡 구성 (작업중)

그동안 이짓을 해보려고 사놨던 라즈베리파이2, 라즈베리파이3, 그리고 집에 놀고있던 대학교 초년생때 산 넷북과 심폐소생술로 살려낸 맥북 2009년형이 있다.1) 구조짜기가지고 있는 뭔가 계산할수 있는 계산기들은 다음과 같다. 클러스터를 구성하기 위해 아래와같이 온갖 잡다한 돌덩이 컴퓨터들을 연결해놓았다. 허브나 공유기를 통해 하나의 네트워크로 연결해줄수 있다. 공유기로 192.168.0.X로 모두 설정했다.클러스터라고 하기에는 뭔가 이상하긴 하지만, 어쨌든 집에서 놀고있는 기계들을 하나로 뭉쳐서 뭔가 쓸모있게 한다는 점에서는 만족스럽다. 모양새가 좀 그렇지만 어쨌든 돌아가기만 하면 되지 않능가 2) 라즈베리파이 OS설치나머지 컴에 우분투와 맥이 있으니 이건 놔두고, 라즈베리파이 OS를 설치한다.https..

Spark를 이용한 데이터분석 (1) - 준비하기

본 포스팅은 Advanced Analytics with Spark, 한빛미디어스칼라와 기계학습, PACKT참조. 스파크와 스칼라의 조합을 쓰는 이유 - 보통은 R에서 프로토타입을 만들고 (REPL) 파이썬으로 래핑되어있는 라이브러리를 이용하거나 C / Java계열로 포팅해서 쓰는데 반해, 스칼라는 그 자체로 운영에 적용할수 있는 JVM기반의 언어이며 스파크 쉘로 탐색적 분석을 가능케 한다.- 스칼라 언어에서 오는 반복적인 모델링이나 전처리등의 깔끔함.- 하둡생태계와 통합하기에 좋은 점.- 맵 이후 리듀스 단계를 지키지 않아도 되며 바로 다음 단계로 임시 결과를 넘길 수 있음 1) UC어바인 기계학습저장소로 표본 데이터 발췌 (curl은 data transfer tool로, https://www.lesst..