일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Redis
- 간단
- gradle
- EMR
- Zeppelin
- 예제
- redash
- 머신러닝
- 설정
- Cluster
- fastcampus
- java
- spring
- 자동
- 레디스
- 자바
- Mac
- aws
- config
- SpringBoot
- Docker
- Jenkins
- 젠킨스
- 클러스터
- Kafka
- ec2
- hive
- vue
- login
- 로그인
- Today
- Total
목록전체 글 (193)
코알못
Yarn 집계 로그가 하둡 용량(EC2 로컬)을 많이 차지하여 저장소를 S3로 변경 하고자 하였다. 아래와 같이 설정하며 (반드시 \/ 로 경로 구분, 로그 경로는 하위 단계가 여러개도 가능) { "Classification": "yarn-site", "Properties": { "yarn.log-aggregation-enable": "true", "yarn.log-aggregation.retain-seconds": "-1", "yarn.nodemanager.remote-app-log-dir":"s3:\/\/[버킷경로]\/[로그경로]" } }, Ranger가 적용된 EMR 에서는 아래 오류 로그가 발생하며 로그가 S3에 저장되지 않았다. 2023-05-16 05:06:57,978 WARN org.apac..
이번 시간에 두가지 실습을 진행해보도록 한다! 첫번째. Label, Selector 기본 명령어 연습 두번째. Selector로 선택하여 배포 이제 실습을 진행해보도록 하자! 첫번째. Label, Selector 기본 명령어 연습 테스트를 위해 우선 4개의 yaml 을 만들어본다..! # rose-app.yaml apiVersion: v1 kind: Pod metadata: name: rose-app labels: group: nature spec: containers: - name: rose-app image: yoonjeong/red-app:1.0 ports: - containerPort: 8080 env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: sp..
이번 시간에 두가지 실습을 진행해보도록 한다! 첫번째. 환경 변수 컨테이너에 전달하기 두번째. 파드간 통신 이제 실습을 진행해보도록 하자! 우선 VisualCode 사용자라면 yaml 작성 편리하게 하기위해 아래 플러그인을 설치 한다. 첫번째. 환경 변수 컨테이너에 전달하기 우선 아래 yaml 파일을 작성하며 환경 변수 전달은 env 부분을 보면 된다. 예시로 POD_NAME 의 경우 metadata.name 값을 가져와서 컨테이너에 해당 값을 전달하며 현재 값은 hello-app 인것을 알 수 있다. # hello-app.yaml apiVersion: v1 kind: Pod metadata: name: hello-app namespace: default spec: containers: - name: h..
파드가 무엇인지 보자! Pod는 콩껍질이라는 뜻으로 안에 콩은 컨테이너라고 생각 하면 된다. 풀이 해보자면 여러 컨테이너를 담을 수 있는 가장 기본적인 배포 단위로 노드 하나에 1개 이상의 Pod를 배치 할 수 있다. Pod는 노드에서 유일한 IP가 할당 되며 Pod 내부에서 컨테이너간에 localhost로 통신 가능하다. Pod IP는 클러스터 내에서만 유효하며 외부에서 접근하기 위해서는 Service 또는 Ingress 오브젝트가 필요하다. 컨테이너의 라이프사이클이 같고, 스케일링 요구 사항(예를 들어 트래픽이 비슷한)이 같고, 인프라 활용도가 더 높아지는 방향으로 묶는것이 좋다.(파드가 너무 크다면 노드에 남은 리소스가 있더라도 맞지 않으면 배치 되지 않아 노드 활용도가 떨어지므로 적절하게 묶는것이..
어떤 어플리케이션을 얼마나 어디에 어떤 방식으로 배포할지는 yaml 파일로 정의하며 해당 파일을 kubectl로 적용 요청 하면 RestAPI 를 통해 클러스터에 전달 된다. yaml 파일에는 오브젝트를 정의하게 되는데 오브젝트 몇가지만 설명하면 아래와 같다. 오브젝트 설명 Pod 어떤 어플리케이션을 ReplicaSet 얼마나 Node, Namespace 어디에 Deployment 어떤 방식으로 배포할것인가 Service,Endpoints 트래픽을 어떻게 로드밸런싱 할것인가 이제 실제 yaml 파일을 보면서 파악하도록 하며 구조는 아래와 같다! apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: metc..
이번시간에는 GCP(Google Cloud Platform)을 사용하여 쿠버네티스 설치와 셋팅을 진행해보자! 우선 아래 사이트로 접속한다. https://cloud.google.com/ 클라우드 컴퓨팅 서비스 | Google Cloud 데이터 관리, 하이브리드 및 멀티 클라우드, AI와 머신러닝 등 Google의 클라우드 컴퓨팅 서비스로 비즈니스 당면 과제를 해결하세요. cloud.google.com 무료 버전 구독을 위해 무료로 시작하기 버튼을 클릭한다. 90일이 지나거나 $300을 모두 사용하면 무료 버전이 종료 되며 이전에 사용하던 클러스터도 중단되며, 이전에 만들어둔 클러스터를 계속 사용하고 싶다면 새 구독 버전으로 전환하면 되므로 안심하고 결제 정보 입력하여 무료 평가판 시작 하기 버튼을 눌러 ..
앞서 실습한 내용으로 도커를 이용하여 CD 구현하면 되지만 만약 배포 서버가 1000대라면..! 물론 구현할 수 있지만 편리하게 할 수 있는게 있다면! 그리고 운영 서버를 받고 사용해보니 많은 리소스가 필요 없어 놀고 있는 리소스가 있을때 다른 서비스에 활용하여 자원을 잘 사용하는 방법이 있다면 ...! 반대로 리소스가 부족할때 자동으로 스케일링 할 수 있는 방법이 있다면..! 또한 장애가 있을때 자동으로 복구(롤백/컨테이너다시시작/컨테이너교체)를 해준다면...! 바로 쿠버네티스를 사용하면 모두 가능하다!! 쿠버네티스는 여러개의 컨테이너 애플리케이션을 여러 서버에 자동으로 배포 및 스케일링 등 관리 해주는 오픈소스 시스템이다! 이제 쿠버네티스의 구조를 알아보자! 쿠버네티스 공식 홈페이지에 있는 구성도 이..
아래와 같이 Lambda를 통해 EMR 을 기동하고 있으며 datadog agent가 설치된 이미지에 EMR을 기동하고 있다. import json import boto3 client=boto3.client('emr') s3=boto3.resource('s3') emr_config_json='' def lambda_handler(event, context): emr_create() return { 'statusCode': 200, 'body': 'emr create success!!!' } def emr_create(): get_emr_config() response = client.run_job_flow( Name= "DEV-EMR", LogUri= "s3://test-bucket/logs/", Rel..