spark로 프로젝트할때 python? scala? 고민을 하게되는데, 이때 가장 큰 고민은 scala의 경우에는 build하는 sbt, maven을 사용을 해야하는 점이다. python을 사용하는 사람은 보통 build하는데 익숙하지 않다. 그래서 package의 dependencies를 관리하는게 매우 번거로움 그래서 찾다가보니 proejct를 처음 시작할때 도움을 주는 툴이 있었다.
3. ./gradlew idea * 일단 terminal에서 es repository를 클론해온 elasticsearch 디렉터리로 가서 ./gradlew idea 를 실행 * 이거 해놓고 intellij에서 import해야 자연스럽게 gradle project import가 편해지는 듯.
7. 소스 폴더 distribution>build.gradle에서 xpack.security.enabled'를 false로 바꿔줘야 localhost에서 rest api사용가능함.
8. intellij 터미널에서 ./gradlew run --debug-jvm 실행. * 하다가 뻑나면 ./gradlew clean하고, ./gradlew idea하고 다시 실행.
9. 아래와 같이 run#start가 뜨면 된건데, 이때 intellij>run>attach to process를 누르고 방금 빌드완료한 snapshot넣어주면, 디버깅 준비 완료!! ============-> 98% EXECUTING [33m 6s] > :distribution:run#start
10. 이제 break point 걸어서, localhost:9200/_cluster/settings 등등 api날려보면서 코드 디버깅 할 수 있음.
참고로 gg는 파일 첫번째 줄로 이동, G는 파일 맨끝으로 이동, ==은 indentation 아래는 이명령어의 조합을 사용
파일 전체 들여쓰기
gg=G
To indent the all the lines below the current line
\=G
# To indent the current line
To indent n lines below the current line
n==
For example, to indent 4 lines below the current line
4==
To indent a block of code, go to one of the braces and use command
\=%
* Free memoryis the amount ofmemorywhich is currently not used for anything. This number should be small, becausememorywhich is not used is simply wasted.Available memoryis the amount ofmemorywhich isavailablefor allocation to a new process or to existing processes. * free memory는 현재 어떤 것에도 사용되지 않는 메모리이고, 사용되지 않는 메모리는 낭비되기때문에 사이즈가 작음. available memory는 새로운 프로세스 또는 존재하는 프로세스에 allocation할 수 있는 메모리.
2. 특정 port가 사용되는지 보기 : sudo netstat -ntlp | grep :5044 port가 listen되고 있는지 볼 수 있음.
3. cpu 현황 전체 보기 : cat /proc/cpuinfo processor 수만 따로 보기 : grep -c processor /proc/cpuinfo
프로그램에서 <사용되고있거나 or 참조되고있는> 객체와 <사용되지않거나 or 참조되고있지않는> 객체를 구별하여, <사용되지않고 or 참조되지않고있는> 객체가 사용하는 메모리를 회수 할 수 있다. c에서는 수동 프로세스인데, java에서는 automatic process!
2. process
step1. marking
마킹단계에서는 모든 객체들을 스캔하여, 어떤것이 안쓰이는지를 마킹함.
step2. normal deletion
참조되는 객체는 남기고, 참조되지 않는 객체는 지우고, 메모리 할당은 free space를 가르키고, 메모리 할당이 이루어져야 할때 free space를 찾는다.
step3. deletion with compacting
남겨진 참조되는 객체들을 compact 압축 할 수 있다.
남겨진 객체들을 모음으로써 새로운 메모리 할당을 더욱 쉽고, 빠르게 할 수 있음. ---- 선택?
3. the generatinal garbage collection process.
대부분의 객체들은 아주 짧은 수명을 지님. 시간이 지남에 따라 더 적은 수의 객체가 할당 된 상태로 유지 됨. 실제로 대부분의 객체는 그래프 왼쪽값이 높을 수록 수명이 매우 짧음. jvm성능 강화를 위해 위의 내용을 참고하여 jvm generations개념을 도입함.
-Xms : jvm start할때 초기 heap size. -Xmx : maximum heap size. -Xmn : young gengeration size. -XX:PermSize : starting size of the permanent generation. -XX:MaxPermSize : the maximu, size of the Permanent Generation