반응형

Programming/Java 24

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

YARN Distributed Shell Application - ApplicationMaster - 주석

Comment YARN framework을 사용하여 실행된 container들의 모음에서 shell command를 실행하는 ApplicationMaster이다. 이 class는 어떻게 yarn 기반의 application master들을 작성하는지에 대한 예제의 역할도 뜻한다. ApplicationMaster는 ResourceManager의 launcher에 의해서 container에서 실행된다. ApplicationMaster가 하기를 요구하는 것 중 첫번째 것은 스스로 ResourceManager에 연결하고 등록하는 것이다. 등록은 ResourceManager 안에 ApplicationMaster가 listening할 host:port에 관련된 정보를 설정하는것으로 이것들은 client에게 url을..

Programming/Java 2015.03.23

Maven in 5 Minutes

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html Prerequisites 그냥 computer에 설치할줄만 알면 된다 Installation Maven은 java tool 이므로 꼭 Java가 설치돼있어야 한다. 첫번째, Maven을 다운로드 받고 installation instructions을 따라라. 그리고, cmd나 terminal에 다음을 쳐봐라 $ mvn -version 설치된 Maven 버전이 출력된다, 예를 들어: Apache Maven 3.0.5 Maven home: /usr/share/maven Java version: 1.7.0_72, vendor: Oracle Corporation Java home: ..

Programming/Java 2015.01.21

hadoop mapreduce.task.io.sort.mb 에 대해

mapreduce.task.io.sort.mb100The total amount of buffer memory to use while sorting files, in megabytes. By default, gives each merge stream 1MB, which should minimize seeks. http://www.slideshare.net/cloudera/mr-perf Map task (개별) 가 output을 작성할때, 당연하게도 바로 disk에 이를 적지는 않는다. 자신이 가지고 있는 in-memory buffer가 있는데, 이 크기를 조절하는게 mapreduce.task.io.sort.mb 이다. (아무리 생각해도 이름이 너무 직관적이지 못하다...) default 설정이 100MB..

Programming/Java 2014.12.12

HiBench를 새로운 hadoop인 yarn에서 실행할때 일부 밴치마크가 제대로 작동하지 않는 버그

Hibench를 사용하여 hadoop의 성능을 테스트하고 있는데, random text writer를 사용하는 sort와 wordcount에서는 configure.sh에서 설정한 것이 제대로 반영되지 않는것을 확인할 수 있었다. 그래서 신버전의 randomtextwriter를 찾아본 결과, 이름이 수정되어서 이전 randomtextwriter의 코드로 작성된 prepare.sh의 내용이 제대로 반영되지 않는것으로 판단됐다. 현재 HiBench 2.2 버전의 prepare.sh 코드는 다음과 같다. #line: 39# generate data$HADOOP_EXECUTABLE jar $HADOOP_EXAMPLES_JAR randomtextwriter \ -D test.randomtextwrite.bytes_..

Programming/Java 2014.04.16
반응형