본문 바로가기

전체 글

(89)
Kubectl 명령어 현재 프로젝트 개발중에 많이 쓰고 있는 명령어 참고용 Namespace 목록 확인 kubectl get ns Context 목록 확인 kubectl config get-contexts Context 변경 하기 kubectl config use-context 컨텍스트이름 Pods 확인하기 kubectl get pods Bash 실행하기 kubectl exec --stdin --tty Pod이름 -- /bin/bash 로그확인하기 kubectl logs -f Pod이름
WebClient 사용하기 개인 공부용 정리중. WebClient는 결국 서버와의 통신을 위한 목적이므로 다음과 같은 과정이 필요하겠다. 1. 서버에 요청할 때 사용할 요청 포멧을 정의함 (당연히, 서버와 동일한 포멧으로 주고 받아야함) 2. 서버로 부터 응답 받을 데이터 포멧을 정의함 3. 서버로 부터 응답 받은 데이터를 처리함 1. 요청 포멧 정의하기. 예를 들어 서버가 다음과 같은 데이터 포멧을 수신하도록 만들어져 있다면 @Data @RequiredArgsConstructor public class Pet { final private String name; final private int age; final private Date createdDate; } @Slf4j @RestController @RequestMapping..
WebClient Builder 개인 공부를 위해 정리중.. Non-blocking 통신을 위해서는 RestTemplate 대신 WebClient를 사용하자. WebClient를 사용하는 방법은 간단하게 WebClient.create(), WebClient.create(url) 사용할 수 있지만 여기서는 WebClient Builder에 대해서 살펴보자. WebClient.builder 에는 아래와 같은 함수들을 이용할 수 있다. defaultHeader defaultCookie uriBuilderFactory defaultUriVariables defaultRequest filter exchangeStrategies clientConnector 1) defaultHeader, defaultCookie 는 함수 이름만으로 예상가능할 듯..
int[] to Integer[] Java 8 Stream API 이용하기 public Integer[] convertToInteger(int[] array) { return Arrays .stream(array) .boxed() .toArray(Integer[]::new); } Sorted 하기 (내림차순) public Integer[] convertToInteger(int[] array) { return Arrays .stream(array) .boxed() .sorted(Comparator.reverseOrder()) .toArray(Integer[]::new); }
[스톰] Guaranteeing message processing Guaranteeing message processing 원문:https://github.com/nathanmarz/storm/wiki/Guaranteeing-message-processing 그동안 너무 바뻐서 올만에 발번역~ 스톰은 Spout 서 나온 각 메세지들이 완전히 처리되는 것을 보장한다. 이 페이지는 어떻게 스톰이 이를 보장하고 있는지, 스톰의 신뢰성을 이용하기 위해 무엇을 해야하는지 기술한다. (아직까지 Spout를 어떻게 우리말로 바꿀지 모르겠다;;)What does it mean for a message to be "fully processed"? (메세지가 완전히 처리되었다는 의미가 무엇인가?) Spout에서 나온 튜플은 이를 기반으로 만들어진 수많은 튜플들을 트리거할수 있다. 예를들..
Snappy in Hbase 현재 Hbase를 로컬모드에서 이용하면서 개발중.Snappy 모듈을 로드하지 못하는 예외가 발생하길래 라이브러리 패스등을 echo하려고 했더니 Zookeeper 에러가 발생한다.echo구문을 빼면 Zookeeper에러가 발생하지 않고.. 뭔짓을 하는 거 같다.. 일단 패스.. 아무것도 찍어주지말자.그리고 Snappy Native Library 모듈은 하둡의 lib/native/플랫폼 폴더에 저장하면 hadoop에서는 자동으로 로딩되고Hbase에서 사용하고자 할때는 이경로를 hbase-env.sh에 다음과 같이 설정해 주자.우선 snappy를 공유 라이브러리로 컴파일한다. 그 과정은 다음에 나와있다. http://code.google.com/p/snappy/ 예) 64비트 리눅스인 경우 JAVA_LIBRA..
Hbase pseudo distributed mode 로컬에서 디버깅환경구축중이다. 로컬모드는 다운받고 그대로 실행만 해주면 끝나지만 가상 분산 모드는 설정파일을 살짝 수정해주어야한다. HBase 를 가상 분산 모드로 실행하기 구글신으로 검색해서 해봤는데 안되서 헤딩했다;. 0.94.1 0.94.2 버전에서 테스트한 결과는 다음과 같다.hbase-site.xml 파일 다음과 같이 추가해준다.처음에는 configuration 엘리먼트만 있을 것이다. hbase.rootdir hdfs://localhost:9000/hbase 그리고 hadoop을 가상분산모드로 실행시킨 후에 hbase를 실행하면 된다.hdfs://localhost:9000 이것은 하둡 설정파일 core-site.xml 에 fs.default.name을 적어주면된다. (거기에 루트 디렉토리 추가..
Hadoop 디버깅 하기. 하둡을 로컬 환경에서 개발하면서 디버깅 하기 위한 방법에 대해서 정리해 보려한다. 구글신의 도움으로 이런 저런 블로그를 둘러보고 테스트한 결과를 토대로 다음과 같은 방법이 가능하다. 싱글모드, 즉 Standalone 모드일때는 디버깅이 사실 쉽다. hadoop-env.sh 파일에 자바 디버깅 옵션을 넣어주고 리모트 디버깅을 수행하면된다. 사실 이런것도 필요없고 이클립스에서 설정만 잘하고 실행시키면 바로 디버깅하면 실행할수 있다. 별도의 플러그인도 필요없다. 그래서 만약에 로컬모드로 실행시키는 경우 리모트디버깅하지 않고 클래스패스만 잘 잡고 이클립스에서 바로 실행하는 것이 오히려 좋다고 본다. 두번째는 가상분산모드이다. 여러 포스트를 살펴보았지만 별다른게 없었다. 별도의 태스크트랙커가 실행되어서 맵리듀스를..