-FOR MAC OSX 
1.HOMEBREW를 설치 한다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.gollum git hub 사이트로 가서 설치 법을 확인! https://github.com/gollum/gollum/wiki 
3.brew install icu4c 
4.sudo gem install charlock_holmes -- --with-icu-dir=/usr/local/opt/icu4c 
5.sudo gem install gollum 
6.실행: gollum --port 8099 [폴더명] -> 폴더명을 지정해주지 않으면 실행하는 곳에 파일을 만든다. 
7.해당 폴더에 git init를 해주지 않으면 제대로 동작하지 않는다.
8.가끔

incompatible character encodings: UTF-8 and ASCII-8BIT 

에러가 발생한다.
9.나 같은 경우 집에서 윈도우로 이미 PUSH 한 데이터를 내려 받아 MAC에서 다시 PUSH 할 경우 이러한 문제가 발생했다.
10.gollum-rugged_adapter를 설치해 주면 된다.
11.brew install cmake
12.brew install pkg-config
13.sudo gem install gollum-rugged_adapter
14.gollum --adapter rugged

잘됨.

push git은 비공개인 비트버킷을 이용하여 백업한다.

source tree 앱을 활용 중

'Hun Site > IT' 카테고리의 다른 글

Hadoop DATANODE Java Heap Warning  (0) 2016.08.24
HIVE 성능 향상 방안  (0) 2016.08.18

HDP 버젼을 2.4로 업데이트 이후


DATANODE JAVA HEAP WARNING을 자주 보게 되었다.



기존까지 별 문제 없다가 업데이트 이후 자주 보이고 있다.


결국은 GC 문제로 추정되는데


WARNING이 발생하더라도 나중에는 사라지게 된다.


DATANODE의 JAVA HEAP의 크기를 증가 시켜 줘도 똑 같은 현상이 발생하는 걸 보면


확실히 GC의 문제이다.


이 GC가 너무 자주 동작해도 문제고 너무 동작하지 않아서 FULL GC가 돌게 되어도 문제다.


어느 것이든 성능 이슈가 발생하게 된다.


일단 나의 이론이 맞는지 증명해 보기 위한 간단한 테스트!



"jcmd <DATANODE PID> GC.run"


명령으로 해당 DATANODE에 강제적으로 full garbage collect를 동작하게 해주면


위의 경고는 조금 후 사라지게 된다.


역시! GC 문제


JAVA의 고질 적인 문제인데...


해당 문제를 해결하기 위해 HORTONWORK Community Site를 기웃거리다.


역시 같은 문제를 가지고 있는 글을 보았다.



글을 보니


효과 적인 GC를 구동하기 위해 옵션을 설정해 줄수 있다!!!?



hadoop-env.sh 파일에


HADOOP_DATANODE_OPTS:

-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=<percent>


여기서 percent를 70으로 해주면


문제 없이 동작을 한다고 한다.


결국은 상황에 자신의 상황에 맞게 설정을 해주면 될 듯하다.


그리고 이건 


garbase collection 설정에 관한 참조 할 만한 글이다. 


시간 날때 읽어 보면 좋을 듯 하다.


https://community.hortonworks.com/content/kbentry/14170/namenode-garbage-collection-configuration-best-pra.html


참조 사이트 


https://community.hortonworks.com/questions/39875/datanode-heap-exhaustion.html


'Hun Site > IT' 카테고리의 다른 글

개인 위키 gollum 위키 설정 for mac  (0) 2017.02.20
HIVE 성능 향상 방안  (0) 2016.08.18

일반적으로 알려진 Hive 성능을 높이기 위한 방안 알려진 방안 HDP를 사용할 경우

[Tez Engine 사용] (현재 사용중)

MR(Map Reduce)는 여전히 대용량 배치 작업에 사용되고 있지만 이제 구 시대의 기술이 되어 버렸죠. Tez 엔진을 사용하면 2배 이상의 성능 향상이 가능 함


[ORC File  사용] (현재 사용중)

일반적인 TEXT FILE 형태로 HIVE Table에 데이터를 넣는 것 보다 ORC File 형태로 입력하면 좀더 나은 성능을 얻을 수 있다. 일반적으로 Hive Table을 생성 할때

“CREATE TABLE TESTTABLE (value string, key string) STORED AS ORC” 만들고

“insert OR Load Data”를 사용하여 TABLE에 입력하면 된다.

추가적으로 SNAPPY 압축을 걸어 줄 수 있다.

“CREATE TABLE TESTTABLE (value string, key string) STORED AS ORC TBLPROPERTIES (“orc.compress”=”SNAPPY”)”

ORC 파일 형태의 파일이 TEXT 파일 형태보다 용량을 1/4정도 절감 할 수 있습니다. 여기에 SNAPPY 압축으로 데이터 용량을 더 줄이는 것이 가능 하다


[VECTORIZATION 사용] (현재 사용중)

Hive Configuration에 존재 하는 항목 이다.

hive.vectorized.execution.enabled = true

hive.vectorized.execution.reduce.enabled = true

위와 같이 설정하면 VECTORIZATION을 사용 가능 하다

VECTORIZATION은 ‘like’ scan, aggregations, fliters and joins의 성능 향상을 가져 온다


[PARTITION 사용] (현재 미사용)

PARTITION은 특정 키를 기준으로 HDFS에 저장되는 파일의 위치를 분리 한다.

QUERY 수행 시 PARTITION KEY를 Filter 조건으로 걸어 주면 해당 지역의 파일만 스캔하여 분석을 하기 때문에 빠른 응답 속도를 보인다.

하지만 FULL SCAN QUERY의 경우 속도 저하가 발생합니다.

그리고 PARTITON으로 분할 입력 시 HDFS내에 파일 내에 개수가 증가하게 될 경우 작은 용량의 파일의 개수가 증가하면서 FILE I/O 부하가 증가하여 전체적인 속도 저하가 크게 발생하게 된다.

지금까지 PARTITON을 사용 하는 것 보다 FULL SCAN QUERY를 사용 하는 것이 더 빠른 양의 데이터(ㅡㅡ)였기에 사용하지 않고 있었지만 데이터의 증가가 빠르게 이루어 지고 있는 만큼 적용 후 테스트를  더 진행해 봐야 할 것 같다.


[COST BASED QUERY OPTIMIZATION 사용] 

QUERY 수행 PLAN을 최적화 하여 사여 EXCUETION 하도록 하는 기능 이다.

Configuration

hive.cbo.enable=true

hive.compute.query.using.stats=true

hive.stats.fetch.column.stat=true

hive.stats.fetch.partition.stat=true

위 설정으로 사용 가능 하며 현재 설정되어 있는 옵션

분석을 원하는 Table 에

analyze table [tablename] compute statistics

analyze table [tablename] compute for columns;

명령어를 하면 각 컬럼에 대한 통계 데이터를 생성하여 최적의 쿼리 PLAN을 찾아 준다고 한다.


[쿼리 최적화] 

가장 중요한 것은 쿼리 최적화 이다. 쿼리를 작성 할 때 나도 가끔 잊곤 하는 것이 있는데..

항상 explain 으로 쿼리 plan을 확인 하는 습관이 필요 하다.

아무리 최적화를 한다고 해도 쿼리를 잘 못 짜면 아무 소용이 없다.

UDF Function 도 마찬가지…



[간단한 테스트]

CBO

TABLE을 분석 하기 전

select pid , count(*) from poiranklogtable_orc group by pid limit 1000

QUERY의 execute plan 이다.

눈여겨 볼 것은 맨 위 상단의

Plan not optimized by CBO

Reducer 2 Vectorized

Map 1 vectorized

이다. 위에서 언급 했던 vectorization이 적용 되어 있다고 하고 CBO로 최적 화 되지 않았다고 나온다.

쿼리 수행 시간 : 60.429

“analyze table poiranklogtable_orc compute statistics for columns” 실행 후

CBO_after

겉으로 보기에는 별 차이가 없어 보인다.

상단에 Plan not optimized by CBO 도 그대로 보인다.

Statistics:Num rows: 4366386 Data size: 39956388 Basic stats: COMPLETE Column stats: COMPLETE

자세히 살펴보면 위와 같이 group by operator 에서 Data Size와 Num Rows의 개수가 줄었다.

쿼리 수행 시간 : 47.33

CBO 를 사용하기 위해서 analyze 명령을 수행해야 하는데 이 수행 명령 또한 소요 시간이 발생한다. (위의 Table에서는 소요 시간 32초 즉 전체 수행 시간: 32+47 = 79)

그냥 analyze를 사용한다고 해서 optimized 하게 모든 plan이 다 적용 되는 것도 아닌 것 같다. 데이터가 적재 될 때 마다 분석 쿼리를 수행해야하는 지도 불분명 하다.

CBO기능은 좀더 확인을 해봐야 할 듯 하다.

'Hun Site > IT' 카테고리의 다른 글

개인 위키 gollum 위키 설정 for mac  (0) 2017.02.20
Hadoop DATANODE Java Heap Warning  (0) 2016.08.24

 톰이 말해 준 대로 사람들의 눈을 피해 서두르지 않고 빠르게 발을 옮겼다.


익숙한 냄새가 난다. 그녀가 근처에 있다는 걸 내 직감이 말해주고 있다. 내 직감이 이끄는 데로 발을 옮긴다.


저기 반지하의 조금 열린 틈 사이로 익숙한 냄새가 세어 나오고 있다.


난 그 창문 너머로 방안을 들여다 보았다. 톰의 아지트 보다 더 어두운 방안 한 쪽 구석에 무언가 웅크리고 앉아 있는 게 보인다.


그녀인 것 같다. 방은 몇 일 동안 치우지 않은 듯 보였고 그녀는 간간히 작은 어깨의 떨림으로 살아 있음을 내게 말해주고 있었다.


기껏해야 고양이인 내가 왜 이렇게 그녀를 신경쓰고 있는 지 모르겠다.


무엇인가 내가 그녀에게서 받은 것들을 조금이라도 보답하고 싶은 것일까... 


지금까지 인간들을 지켜 보는 것이 나에게는 그냥 지루한 일상의 놀이 같은 거였을 뿐인데... 


그녀가 먹이를 주지 않아도 굶어 죽을 일도 없는 나인데...


머리가 복잡해 진다. 


으아악 내 머리 속에 그녀는 뭐란 말인가?


'야~~옹...?!'


이런 나도 모르게 소리를 지르고 말았다.


음?!


그녀가 고개를 들어 창밖을 보았다. 내 눈과 그녀의 눈이 마주친 채로 시간이 멈춰 버린 것 같았다. 난 그 자리에서 굳어 버렸다.


그녀는 자리에서 일어나 창문을 열고 굳어 버린 나에게 다가 왔다.


'안돼... 움직여야 해 자리를 떠야해...안돼...돼..돼..돼..'


어느새 난 그녀의 품에 안겨 있었다.


그녀는 나를 안고 한 동안 계속 흐느꼈다.


얼마간의 시간이 흘렀을까?


그녀가 나에게 나지막하게 속삭였다.


'고마워.. 나에게 찾아와 줘서...'


나도 그녀에게 속삭였다.


'야옹..(너 참 따뜻하다...)'




<----------------------끝----------------------->


작가의 말 - 


보통 길 고양이를 입양할 경우 간택 당했다라는 표현을 많이 쓴다. 


그런 인연이 단순한 인연이 아님을 말하고 싶었다.


사람과의 인연도 그렇고


동물과의 인연도 그렇고 서로의 관계를 너무 쉽게 생각하는 요즘의 현실이 조금 안타깝다.


'Hun Site > 창작 소설' 카테고리의 다른 글

간택(벤치의 그녀(2))  (0) 2016.08.10
간택(벤치의 그녀(1))  (0) 2016.08.04

 난 먼 여행을 좋아하지 않는다. 특히 내 구역을 벗어나는 일은 좋아 하지 않는다.

 다른 이들이 나에게 시비를 거는 것도 싫지만 익숙한 곳을 떠나 낯선 곳으로 가는 것은 영 찜찜한 기분이 들기 때문이다.

 일단 그녀는 공원의 동쪽 입구 쪽에서 걸어 왔다. 그렇다면 East Bay 쪽인데.. 

 그 곳은 톰의 구역이다. 멍청이 톰. 먹을 것 밖에 모르는 녀석!

 너무나도 멍청한 녀석인데 먹을 것에 대한 욕심이 강해서 사람들에게 배를 보여주며 먹이를 얻는 자존심도 없는 녀석이다.

 날이 밝았다. 사람을 찾을려면 일반적으로 밤보다는 낮이 좋다. 

 졸린 몸을 이끌고 오래간 만에 내 구역을 벗어나 East Bay쪽으로 갔다.

 내 구역을 벗어나니 기분이 찜찜하다. 누군가 나를 공격해도 할 말이 없는 상황이다.

 그래도 톰은 누가 자기 구역에서 배를 보여주며 구걸만 하지 않으면 공격하지는 않는다. 

 저기 톰이 보인다. 톰은 그냥 흔하디 흔한 모습이다. 갈색, 검정색, 흰색이 썩인 지멋대로인 패턴 무늬를 가지고 있고 굳이 특징을 찾자면 오른쪽은 갈색 점박이 이고 왼쪽눈은 검정색 점박이란 것 정도이다. 사람들은 신기한 펜더 문양이라고 좋아라 하는 것 같지만...

 난 조심 스럽게 톰에게 다가 갔다. 톰은 만사가 귀찮은지 담벼락에 붙어서 그냥 누워 있었다.

 '어이 톰!'

 '잉? 니가 여기는 왜 왔어? 무슨 일인가?!

 톰은 몸을 벌떡 일으켜 나를 바라 보았다.

 '워워! 진정해 지나가는 길이야. 뭐 좀 물어 보려고 말야!'

 '뭔데?'

 '너 혹시 짙은 검정색머리가 어깨까지 오고 좀 마른 채형에 예쁘장하게 생겼지만 좀 어두운 표정을 하고 있는 아가씨 알아? 거의 매일 해가 질 때쯤 이 길을 지나 공원으로 지나갔을 텐데 말이야!'

 '누구? 모르겠는데 그런 사람..'

 아... 내가 질문을 잘못 했다... 나 처럼 관찰력과 묘사력이 뛰어난 고양이는 흔치 않은데 말이다.

 '매일 고양이 먹이를 들고 다니는 여성알아? 고양이 먹이를 주거나 말야... 최근에 먹이를 주다가 안주고 있을 텐데 말이지?'

 '오~~ 그 정어리 맛 사료를 주는 여성 알다 마다!'

 톰은 그 정어리 사료의 맛을 기억 속에서 꺼내 음미하듯이 입 맛을 다셨다.

 '요즘 그 맛있는 정어리 사료를 먹을 수가 없어서 아쉬워... 안먹은 지 4일이 되었군. 그런데 갑자기 그 아가씨는 왜?! 너 혹시 그 여자애 한테 입양 당할려고 그러냐? 그 여자는 딱봐도 좁은 원룸에 사는 가난한 사람처럼 보이던데 좋은 선택이 아냐'

 먹이를 매일 구걸해야 하는 우리 같은 길 고양이 톰이 그런 말을 하니 좀 뭔가 우스워 보였다. 

 '왜? 내가 이런 말을 하니 우습냐? 우리가 말야 아무리 길 고양이라고 해도 내일 죽을 지도 모른다고 해도 말야 선택 권 조차 없는 건 아니 잖아? 좀더 자존감을 가지라고 친구~'

 역시 길 고양이라서 그런지 눈치는 백단이다.

 '톰 그 여자 어디 사는 지 알아?'

 '알지 저기 저 사거리에서 왼쪽으로 가서 두번째 집 반지하 일꺼야'

 역시 톰은 자신의 먹이 공급지를 정확히 알고 있었다. 

 '여기서 자리 잡을 생각은 말어! 여긴 내 구역이야 룰 알지?

 '그래 알아 고마워. 난 내 공원이 좋아 걱정 말아~'

 난 톰에게 인사하고 조심 스럽게 그녀의 집으로 향했다.

 눈 앞에 보이는 차들 많은 사람들 휴... 역시 내 공원이 좋긴 좋다.

 



'Hun Site > 창작 소설' 카테고리의 다른 글

간택(벤치의 그녀(3))  (0) 2016.08.16
간택(벤치의 그녀(1))  (0) 2016.08.04

햇살이 뜨겁다. 비가 내리고 나면 숨이 턱턱 막힐 듯한 뜨거운 공기로 인해 한 걸음 한 걸음 움직이기가 힘들어 질것 같다. 그래서 인지 어떻게 보면 지금은 날씨가 참 좋다고 여겨 질 만 하다. 

 공원에는 많은 사람들이 가족과 함께 나들이를 나온 것 처럼 보인다.

 난 일찌감치 나와 어느 시간에도 햇살을 막아 줄 수 있는 커다란 느티나무 밑에 자리를 잡고 앉았다. 덥지도 않은 지 어린 아이들은 마냥 신나서 뛰어 다니고 있고 그 아이들의 부모들로 보이는 사람들은 돗자리를 깔고 술과 먹을 것을 함계 나눠 먹고 있다.

 다들 즐거워 보인다. 

 난 뭐 즐거울 것도 없고 나쁠것도 없는 상황에서 그냥 이렇게 시원한 곳에 앉아 사람들을 지켜보는 것이 어느새 일상이 되어 버렸다.

 저기 앉아 있는 사람들은 무슨 이야기를 하며 웃을까?

 저기 뛰어 놀고 있는 아이들은 무슨 생각을 하며 지낼까?

 나는 도저히 상상이 되지 않는다. 뭐 딱히 그렇게 궁금하지도 않다.

 사람들의 세상살이에 별로 궁금해 하지 않는 나 이지만 요즘은 신경쓰이는 사람이 있다.

 내가 이른 시간 부터 이 곳에 자리 잡고 있는 이유 이기도 하다. 매일 저녁 해가 질때 쯤이면 반 대편 벤치에 매일 나타나는 여성이 있는데 요즘 통 모습을 보이지 않는다.

 그녀는 매일 저녁 때 쯤이면 고양이 사료를 들고 와서 벤치 주위에 놓고는 벤치에 혼자 앉아서 음악을 들으며 멍하니 하늘을 한 30분쯤 보다가 돌아가곤 한다. 그녀의 모습을 보고 있자니 왠지 슬퍼 보이기도 하고 왠지 외로워 보이기도 하고... 좀 알 수 없는 연민이 느껴진다고 할까?

하긴 뭐 내가 그런 것을 알 만한 처지는 아니지만 보이다가 보이지 않으니 신경이 쓰인다.

 혹시 나오는 시간이 달라진 건 아닐가 해서 이른 시간부터 여기에 자리를 잡고 있었지만... 역시나 오늘도 오지 않는 것 같다.

 벌써 해가 질 시간이 다가 온다. 해가 지기 시작하면 공원을 가득 채우고 있던 아이들은 사라지고 연인들이 공원을 채우기 시작한다.

 슬슬 나도 배가 고파오기 시작한다. 생각해보니 일찍 여기에 자리를 잡느라 아무것도 먹지 않은 것 같다. 

 때마침 한 쌍의 커플이 그녀가 늘 앉던 벤치에 앉아 이야기를 하고 있다. 그들의 손에는 오징어 포가 들려져 있었다. 

 흠 뭐 내가 좋아 하는 메뉴는 아니지만 배가 고프니 일단 배부터 채워야 겠다.

 자리에서 일어나 기지개를 펴고 나의 매무새를 확인해 본다.

 '얼굴도 좋고'

 '손도 깨끗하고'

 '이 정도면 OK!'

 난 그 커플에게 다가가 세상에서 가장 부드럽고 달콤한 목소리로 말을 걸었다.

 "야~~~옹~~"

 "어머 이 고양이 귀엽다.!!"

 역시 여자가 먼저 반응을 보였다. 난 그녀의 다리에 다가가 몸을 비볐다. 이 정도면 안넘어 오지 않고 못 베기지 

 "이거 완전히 개낭이 인데?"

 남자가 나를 쓰담으려고 하자 난 슬쩍 몸을 빼며 여자를 그윽한 눈으로 바라 봤다. 솔직히 누가 내 몸을 쓰담는 건 그리 기분이 좋지 않기 때문이다. 하물며 남자가 말이다.

 "자 이거 먹어~"

 역시 여자는 눈치가 빠르다. 그래서 난 여자가 좋다. 그 동안 매일 먹던 사료 보다는 맛이 없지만 허기진 배를 채우기에는 안성맞춤이다.

 자꾸 그 여자가 신경쓰인다.

 사료를 못 먹어서가 아니다. 그냥 신경 쓰인다. 내일은 그녀를 한번 찾아봐야 겠다. 

'Hun Site > 창작 소설' 카테고리의 다른 글

간택(벤치의 그녀(3))  (0) 2016.08.16
간택(벤치의 그녀(2))  (0) 2016.08.10

+ Recent posts