메뉴 건너뛰기

Cloudera, BigData, Semantic IoT, Hadoop, NoSQL

Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.


1. sbt-assembly 추가(project/assembly.sbt파일에 아래 내용을 추가함)

  addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.3")


2. project.sbt(혹은 build.sbt) 파일에 아래의 내용을 추가한다.

(scala 2.10.4에 spark 1.5.0을 사용하는 하는 프로그램을 작성하는 경우임)


import sbtassembly.AssemblyPlugin._


name := "icbms"


version := "1.0"


 //scalaVersion := "2.11.8"

scalaVersion := "2.10.4"


resolvers += "Akka Repository" at "http://repo.akka.io/releases/"


libraryDependencies ++= Seq(

("org.apache.spark" %% "spark-core" % "1.5.0" % "provided")

.exclude("org.mortbay.jetty", "servlet-api").

    exclude("commons-beanutils", "commons-beanutils-core").

    exclude("commons-collections", "commons-collections").

    exclude("commons-logging", "commons-logging").

    exclude("com.esotericsoftware.minlog", "minlog").exclude("com.codahale.metrics", "metrics-core")

,

"org.apache.spark" %% "spark-sql" % "1.5.0" ,

"org.apache.spark" % "spark-streaming_2.10" % "1.6.2",

"org.apache.spark" % "spark-streaming-kafka_2.10" % "1.6.2" ,

"org.apache.avro" % "avro" % "1.7.7" 

)


assemblyMergeStrategy in assembly := {

    case PathList("javax", "servlet", xs @ _*) => MergeStrategy.last

    case PathList("javax", "activation", xs @ _*) => MergeStrategy.last

    case PathList("org", "apache", xs @ _*) => MergeStrategy.last

    case PathList("com", "google", xs @ _*) => MergeStrategy.last

    case PathList("com", "esotericsoftware", xs @ _*) => MergeStrategy.last

    case PathList("com", "codahale", xs @ _*) => MergeStrategy.last

    case PathList("com", "yammer", xs @ _*) => MergeStrategy.last

    case "about.html" => MergeStrategy.rename

    case "META-INF/ECLIPSEF.RSA" => MergeStrategy.last

    case "META-INF/mailcap" => MergeStrategy.last

    case "META-INF/mimetypes.default" => MergeStrategy.last

    case "plugin.properties" => MergeStrategy.last

    case "log4j.properties" => MergeStrategy.last

    case x =>

        val oldStrategy = (assemblyMergeStrategy in assembly).value

        oldStrategy(x)

}


3. fat jar만들기(프로젝트의 project 폴더에서 아래의 명령을 실행한다)

 sbt clean

 sbt update

 sbt compile

 sbt package

 sbt assembly


혹은 sbt clean update compile package assembly 를 연속 실행해도 된다.



* 참고 : https://github.com/sbt/sbt-assembly/

번호 제목 날짜 조회 수
681 dual table만들기 2014.05.16 1111
680 특정파일이 생성되어야 action이 실행되는 oozie job만들기(coordinator.xml) 2014.05.20 1081
679 source의 type을 spooldir로 하는 경우 해당 경로에 파일이 들어오면 파일단위로 전송함 2014.05.20 829
678 hive에서 insert overwrite directory.. 로 하면 default column구분자는 'SOH'혹은 't'가 됨 2014.05.20 1126
677 import 혹은 export할때 hive파일의 default 구분자는 --input-fields-terminated-by "x01"와 같이 지정해야함 2014.05.20 4346
676 hiverserver2기동시 connection refused가 발생하는 경우 조치방법 2014.05.22 1561
675 hive query에서 mapreduce돌리지 않고 select하는 방법 2014.05.23 897
674 oozie의 meta정보를 mysql에서 관리하기 2014.05.26 1606
673 hive job실행시 meta정보를 원격의 mysql에 저장하는 경우 설정방법 2014.05.28 1165
672 hadoop및 ecosystem에서 사용되는 명령문 정리 2014.05.28 3660
671 의사분산모드에 hadoop설치및 ecosystem 환경 정리 2014.05.29 3218
670 원보드pc인 bananapi를 이용하여 hadoop 클러스터 구성하기(준비물) file 2014.05.29 3934
669 oozie job 구동시 JA009: User: hadoop is not allowed to impersonate hadoop 오류나는 경우 2014.06.02 940
668 Cannot create /var/run/oozie/oozie.pid: Directory nonexistent오류 2014.06.03 537
667 jsoup 사용 예제 2014.06.06 1631
666 2개 data를 join하고 마지막으로 code정보를 join하여 결과를 얻는 mr 프로그램 2014.06.30 468
665 banana pi에(lubuntu)에 hadoop설치하고 테스트하기 - 성공 file 2014.07.05 2819
664 org.apache.hadoop.security.AccessControlException: Permission denied: user=hadoop, access=WRITE, inode="":root:supergroup:rwxr-xr-x 오류 처리방법 2014.07.05 2930
663 access=WRITE, inode="staging":ubuntu:supergroup:rwxr-xr-x 오류 2014.07.05 1794
662 banana pi(lubuntu)에서 한글 설정및 한글깨짐 문제 해결 2014.07.06 3384
위로