반응형

Programming 62

Spark CSV 의 의존성

Spark-csv 모듈은 Spark에서 CSV를 RDD화 시키는데 사용되는 모듈로, SparkSQL에서는 sql을 통해 csv를 바로 dataframe화 시키는것도 가능하다. Spark-CSV를 이용할때, 모든 의존성 파일들을 spark 코드에 넣어준게 아니라면 spark-csv의 jar파일 뿐만 아니라 반드시 spark-submit에 의존성 jar파일로 commons-csv-1.1.jar 파일을 포함시켜줘야 한다. sbt나 maven과 같은 빌드 도구들의 사용이 보편화됨에 따라 개별 의존성에 대한 정보의 공시는 더더욱 없어지는것 같다...

Programming/Java 2015.12.16

Spark on HBase 관련 코드들

https://github.com/tkyoo/SparkOnHBase Apache Spark를 통해서 HBase에 접근했던 코드들 * Spark에서 Apache Phoenix를 통해 HBase에 접근하는 코드 (Pheonix 폴더) * Spark에서 자체 Hadoop API만을 이용하여 HBase에 접근하는 코드 (Spark 폴더) * Cloudera의 SparkOnHBase 가 정식으로 추가돼 HBase 2.0 때 코드에 들어가 있는 hbase-spark 모듈의 HBaseContext 객체를 이용하여 HBase 접근. (Spark/HBaseContext 폴더). Spark / SparkSQL 사용

Programming/Java 2015.12.10

SparkSQL on HBase - hbase.column.mapping에 사용가능한 타입

HBase 공식 문서의 SparkSQL 부분을 확인해보면 다음과 같이 Dataframe을 만드는 부분이 있다: val sqlContext = new SQLContext(sc) df = sqlContext.load("org.apache.hadoop.hbase.spark", Map("hbase.columns.mapping" -> "KEY_FIELD STRING :key, A_FIELD STRING c:a, B_FIELD STRING c:b", "hbase.table" -> "t1")) df.registerTempTable("hbaseTmp") *) 우선 최신버전에 비해 바뀐점은 SparkSQL의 SqlContext에서 load를 바로 사용하는것은 deprecated 됐다. 현재 버전 기준 올바른 사용법은 s..

Programming/Java 2015.11.25

SparkSQL on HBase 사용방법

*) 현재 날짜 (2015/11/23) 기준으로 Cloudera에서 제작했던 SparkOnHBase의 공식 HBase 에 통합된 HBASE-13392는 오로지 master branch( HBase-2.0.0-SNAPSHOP)에서만 사용할 수 있다. 사실 모든 branch와 tag를 돌아다닌건 아니라 딴데 있을수도... 현재 HBase의 공식 reference guide에는 SparkSQL을 이용해 HBase를 접근 가능하다고 나와있지만, 실제 HBase-1.1.2 package에서는 기원이 되는 project인 SparkOnHBase에서 HBaseContext및 몇개의 class가 없기 때문에 compile이 불가능하다. 따라서 SparkSQL을 stable version인 hbase-1.1.2에서 사용..

Programming/Java 2015.11.23

Spark on HBase 컴파일 시 의존성 문제

참조: http://www.abcn.net/2014/07/lighting-spark-with-hbase-full-edition.html Spark의 공식 예제 의 경우 빌드를 Maven으로 하기 때문에 SBT로 이용하기 위해 검색하던 중 의존성에 대한 문제가 생겼다. 여러 가지의 문서중에서 Spark의 예제 중 HBaseTest.scala 파일의 컴파일 하기 위한 의존성은 윗 링크와 같았다: libraryDependencies ++= Seq( "org.apache.spark" % "spark-core_2.10" % "1.0.1", "org.apache.hbase" % "hbase" % "0.98.2-hadoop2", "org.apache.hbase" % "hbase-client" % "0.98.2-had..

Programming/Java 2015.11.23

Java ByteBuffer Slice, Position, Array, ArrayOffset

C++로 치면 특정 메모리 구간의 중간을 새로운 entry 포인트로 가지는 pointer 변수를 만드는 일과 동일한 것을 할 수 있다. 가령 int a[20];int *b = a[10]; 과 같은 코드가 있다고 한다면 b는 a의 10번째 주소값을 기준으로 가리키는 포인터라고 생각할 수 있다. ByteBuffer의 경우 기본적으로 position이라는 offset을 가지고 있다. 이 position값은 별도로 지정해 주지 않는다면 put 과 같은 method 이용 시 자동으로 가장 최종 값을 가지고 있게 된다. 다음과 같은 경우: ByteBuffer byteBuffer = ByteBuffer.allocate(60); // ...byteBuffer.position() // 0byteBuffer.putInt(..

Programming/Java 2015.07.03

YARN Distributed Shell Application - Client - 주석

YARN에 Distributed Shell application을 제출하는 Client distributed shell client는 application master가 container들의 set에서 제공된 shell command를 실행하는것을 가능하도록 한다. 이 Client는 어떻게 yarn 기반의 어플리케이션들을 작성하는지 예제 역할을 한다. application을 제출하기 위해, client는 첫째로 ResourceManager 혹은 ApplicationManager, ASM으로 알려진 것에 ApplicationClientProtocol을 통하여 접속한다. ApplicationClientProtocol은 client가 cluster 정보에 접근하거나 새로운 ApplicationId를 요청하는것..

Programming/Java 2015.03.23
반응형