vim tt.pl
이렇게 파일을 vim 에디터로 불러옵니다.

Esc키를 누른 후
:se ff=unix
이런 명령을 입력하고

:wq
명령으로 파일 저장 + vim을 종료합니다.

'리눅스' 카테고리의 다른 글

우분트 게스트 확장  (0) 2013.09.17
Too many open files  (0) 2012.01.26

@JsonInclude(Include.NON_NULL)
public class ErrorMessage {
}

jackson 2.2.2 에서 null 값이 데이터를 넘겨주지 않게 하기 위해서 해당 어노테이션을 사용한다. 


'Spring' 카테고리의 다른 글

Spring Rest - Content Negotiation using JSON/XML  (0) 2013.12.17

RESTful 서비스에서 하나의 리소스는 여러개의 Represenation 을 가질 수 있음.


Spring MVC 에서 Content Negotiation 이 View 를 선택하는 방법은 3가지가 있음.

1. A path extension (suffix) in the URL : favorPathExtension(true)
 - 확장자를 보고 선택하는 방법으로
http://localhost/get/user.xml or http://localhost/get/user.json
과 같은 형태.

2. A URL parameter : favorParameter(true)
 - http://localhost/get/user?format=xml 과 같은 형태로 파라미터에 전달된 값으로
선택하는 방법. format 은 변경 가능한 값(parameterName("mediaType"))

3. Accept HTTP header property : ignoreAcceptHeader(false)
 - 마지막으로 Accept 헤더에 포함 된 media type 으로 선택하는 방법이 있다.

세가지 모두 설정 된 경우 우선순위는 1~3.

Content Negotiation 설정과 무관하게 Accept 헤더는 지원 가능한
representation 으로 요청 해야 한다.
당연히 지원 불가한 타입인 경우 Content Negotiation 처리 이전에 HttpMediaTypeNotAcceptableException 이 발생한다.

참조 : http://theblasfrompas.blogspot.kr/2013/10/spring-mvc-rest-content-negotiation.html

'Spring' 카테고리의 다른 글

Json Null 값 안보이게 하기  (0) 2014.01.27

이클립스에 특화된 툴

WireframeSketcher  이클립스 플러그인(http://wireframesketcher.com/)

'Eclipse' 카테고리의 다른 글

리눅스 Eclipse Svn 계정 변경  (0) 2014.05.07
Eclipse 3.7 + Svn  (0) 2011.12.01
이클립스 메모리 관리  (0) 2011.07.12
eclipse 3.6 HeliosにVisualEditor을 인스톨  (0) 2011.02.11
Eclipse + Tomcat6.0 + postgres8.3  (0) 2010.08.06


- 1번 게스트 확장

sudo apt-get install build-essential linux-headers-$(uname -r)

sudo apt-get install virtualbox-ose-guest-x11

sudo reboot

---------------------------------------------------------------------------------------

- 2번 게스트 확장

$sudo apt-get remove virtualbox-* 실행 후,

다시 $sudo apt-get install virtualbox-*

sudo reboot


1번 방식이 안 될경우 2번


'리눅스' 카테고리의 다른 글

도스 텍스트를 유닉스 텍스트로  (0) 2014.03.04
Too many open files  (0) 2012.01.26

mysql -u root -p

패스워드 입력 후 

GRANT ALL PRIVILEGES ON *.* TO 'id'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'id'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

flush privileges;

형식으로 유저 추가 

간단하게 이야기 해서

Hadoop 설정과Hbase 설정만으로 Hbase속도를 UP~

시키기 위해서는 

해당 데이터의 크기 및 장비 상황등.. 기초적인것에서 부터.. 설정값들이 

매번 변한다.. 


여기서 이런값들이 상관없이 가장. 좋은 방법은. 

압축을 사용하는것.

HBase의 속도에 가장 큰 영향을 미치는 것중 하나가

Region서버가 splite되는 현상.. 이때 잠시 정지 상태가되어

속도에 영향을 주게 된다. 


즉..splite되는 현상만 줄여도. 상당히 도움이된다는 이야기 

Snappy와 같은 압축을 사용하게 되면. 

좋게는 20-30프로까지도. 빠르게 된다. 

물론 데이터가 압축효율이 좋은 형태라면 더 빠른속도를 기대해도 좋다.. 


이번 튜닝에서 설정값들로 고친것들과.. 간단한 설명들. 

아래 것들중에서 역시 IO와 스레드를 조정하는것이 가장. 효율이 좋다.. 

다만 스레드의 경우 적절한 값을.. 조절하지 못하면.. 더 느려 진다. 


설정파일 설정항목 설명
hbase-env.sh  HBASE_HEAPSIZE  Java Heap Size
core-site.xml fs.inmemory.size.mb Fs in-memory size (MB)
  io.file.buffer.size  SequenceFile을 읽어들일때 사용하는 Buffer
hdfs-site.xml dfs.namenode.handler.count NameNode Sever Thread 수
  dfs.datanode.max.xcievers DataNode가 한번에 쓰는 파일 수 
hbase-site.xml hbase.regionserver.handler.count RegionSever Thread 수
  hbase.hregion.max.filesize Hfile Size
  hfile.block.cache.size Hfile 안에서 BlockCache용 메모리 사이즈 비율 (0.2 -> 20%)
  hbase.hstore.blockingStoreFiles Hstore내 보존하는 BlockingStoreFile수
  hbase.hregion.memstore.mslab.enabled mslab 의 실행여부
  hbase.hregion.memstore.mslab.chunksize mslab의 chuksize 
  hbase.hregion.memstore.mslab.max.allocation mslab에 할당되는 영역

'Hadoop > Hbase' 카테고리의 다른 글

Hbase map task  (0) 2012.11.12
HBase 에러  (2) 2012.10.22


mapreduce 와 hbase  간의 성능 테스트 중

hbase 를 실행시켰는데 map의 갯수가.. mapreduce 로 실행시켰을때에 비해...

현격하게 적게 나와서. 100 : 1.. 나와서.. 당황.............


왜????

Hbase의 실행구조에 대해서.. 잘모르니. 당최 알수가 있나.. 

무식한게 죄지.. 

reducetask를 조정하는 메소드는. 있는데 왜. maptask는 없는거지..


뭐...일단... 왜 한개만 발생하였는지는

hbase의 어드민 페이지에서 

Table Regions 를 확인 하면 알수 있다. 

내가 5만건의 데이터를 Scan을 하는데 해당데이터가 

한개의 Region Server에 다들어가 있다면. 한개의map만 동작한다는것..

즉.  1 ,50000 건의 데이터가 

5개의 Region Server에 나누어 존재한다면. 5개의 map이 동작한다는..것.





'Hadoop > Hbase' 카테고리의 다른 글

Hbase 튜닝  (0) 2013.02.07
HBase 에러  (2) 2012.10.22

HRegionServer 서버가 올라갔다가 내려가는 케이스의 경우

아래와 같은에러가 발생한 경우 

서버간의 시간동기화 문제임.. (딱 적혀있었는데.. 에궁..)

리눅스로 개발을 많이 해보지 않았으니.. 삽질좀 했다는.. 

 FATAL org.apache.hadoop.hbase.regionserver.HRegionServer: Master rejected startup because clock is out of sync

org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException:



'Hadoop > Hbase' 카테고리의 다른 글

Hbase 튜닝  (0) 2013.02.07
Hbase map task  (0) 2012.11.12

MapReduce  코딩 4일차...

MapReduce 를 만들다보면

사용자정의 형태의 Writable 를 만들어서 사용해야 되는 케이스가 있다. 

만드는 방법이야. 

아래 블러그 내용을 보면 금방 알수가 있으니 패스..

http://blog.naver.com/PostView.nhn?blogId=plateu&logNo=30134405743

여기서 이야기 하고자 하는 것은

상속받아 만든 Custom Writable  객체로 저장한 데이터를 

다시 읽어 들여서 수정하고자 하는 경우에 대해서 말하고자 한다. 

이 경우 중요한것은 입출력 Type정의가 가장 중요하다. 

  conf.setInputFormat(TextInputFormat.class);           //Map에 들어오는 타입

conf.setOutputFormat(SequenceFileOutputFormat.class);  //Reduce에서 나가서 저장되는 타입 (바이너리 형태로 저장해야지 Custom Writable 객체로 저장한 것을 손쉽게 읽어 들일수 있다. )

conf.setMapOutputKeyClass(Text.class); //map 에서 나가는 출력

conf.setMapOutputValueClass(CustomWritable.class);

conf.setOutputKeyClass(Text.class);      //Reduce 에서 나가는 출력

conf.setOutputValueClass(DataWritable.class);

conf.setMapperClass(Map.class);

conf.setCombinerClass(Reduce.class);

conf.setReducerClass(Reduce.class);


이렇게 정의하여 바이너리 형태로 저장한것을 

public void map(Text key, CustomWritable value, OutputCollector<Text, CustomWritable  output, Reporter reporter) throws IOException {

불러 들여 사용하는곳에서 위와 같이 불러 들이면 손쉽게 가져와 사용 할 수 있다 

이것을 몰랐을때.. 구글 검색 해보니..(검색단어가 안좋았던듯..) HDFS에서 읽어 들여 1Byte단위

잘라서 사용하는 소스를 .. 보고 . 엄청 고민했다는..



+ Recent posts