HDFS HA 구성 이해하기(2)
2023. 3. 29. 16:03
데이터 엔지니어링/Hadoop
이전 포스팅에 이어 계속해서 정리해보았다. Apache Hadoop 3.3.5 – HDFS High Availability
HDFS HA 구성 이해하기(1)
2023. 3. 29. 15:46
데이터 엔지니어링/Hadoop
아래의 문서를 참고해서 정리해봤다. 이 문서는 하둡 3.3.5 버전 을 기준으로 작성되어있다. 영어로 작성되어있어 공부할겸 열심히 해석해가며 정리해보았다. Apache Hadoop 3.3.5 – HDFS High Availability
백트래킹(Backtracking)
2023. 3. 18. 17:52
알고리즘/개념정리
백트래킹(Backtracking) 이란 백트래킹 이란 모든 경우의 수를 전부 고려하는 알고리즘 이다. 조금 더 자세하게 말하자면 현재 상태에서 가능한 모든 후보군을 따라가며 해결책에 대한 후보를 구축해 나아가다 가능성이 없다고 판단되면 즉시 후보를 포기하면서 정답을 찾아가는 범용적 알고리즘이라고 한다. 상태 공간을 트리로 나타낼 수 있을 때 적합한 방식이다. 일종의 트리 탐색 알고리즘이라고 봐도 된다. 백트래킹을 사용해 해결할 수 있는 문제는 주로 검색, 의사 결정, 최적화, 열거하기 등의 문제가 있다. 사실 백트래킹은 사용 가능한 경우가 많지만 시간복잡도가 보통 $2^n$ 이기 때문에 대부분의 문제는 동적 프로그래밍 또는 그리디 알고리즘 등으로 더 빠르게 해결할 수 있다. 그렇다고해서 백트래킹을 사용하..
피보나치 수 (Fibonacci numbers)
2023. 3. 17. 10:59
알고리즘/개념정리
피보나치 수 (Fibonacci numbers) 아마도 예전에 수학 시간에 배울 만큼 잘 알고 있는 수라서 모르는 사람이 많지 않을 것이라고 생각한다. 위키에서 정의한 피보나치 수는 다음과 같다. 첫 번째 숫자와 두 번째 숫자가 주어지고 세 번째 숫자 부터는 앞의 두 숫자의 합으로 구할 수 있다. 예를 들어, F(1) = 1 , F(2) = 1 일 때 F(3) = F(1) + F(2) 가 된다. 반복하게 되면 1, 1, 2, 3, 5, 8, ... 의 수열이 만들어진다. 참고 사이트 https://ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98 피보나치 수 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 피보..
유클리드 호제법 (Euclidean algorithm)
2023. 3. 17. 10:55
알고리즘/개념정리
유클리드 호제법 2개의 자연수 또는 정수의 최대공약수 를 구하는 알고리즘의 하나이다. 호제법 이란 말은 두 수가 서로 상대방 수를 나누어서 결국 원하는 수를 얻는 알고리즘이다. 2개의 자연수 a, b 가 있다고 했을 때 a 를 b 로 나눈 나머지 를 r 이라고 하면 (단, a>b ) a 와 b 의 최대공약수 는 b 와 r 의 최대공약수 와 같다. b 를 r 로 나눈 나머지 를 r’ → r 을 r’ 로 나눈 나머지 위의 과정을 반복해서 나머지가 0이 되었을 때의 수가 a 와 b 의 최대공약수 이다. 이런 과정을 거쳐 다음 정리를 이용해서 유클리드 호제법 이 성립하게 된다. 정리 a, b 는 정수, a 를 b 로 나눈 나머지가 r 이라고 하자. ( a ≥ b , r은 0 ≤ r < b 인 정수) a 와 b ..
Mysql - ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
2023. 3. 8. 12:44
데이터 엔지니어링/Database
mysql 을 유저와 패스워드 없이 접속할 때 다음과 같은 에러가 발생한다. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 하지만 다음과 같이 유저와 패스워드를 입력해서 접속하면 정상적으로 접속되는 것을 확인할 수 있다. 물론 접속할 수 있는 방법은 있다. 패스워드를 제거해주면 된다. 다만, 실제 서비스에서는 보안상 위험하기 때문에 유저를 별도로 생성해 유저와 패스워드를 입력해서 접속하는 것을 권장한다. 패스워드를 변경하는 방법은 다음과 같이 mysql document 에서 확인할 수 있다. https://dev.mysql.com/doc/refman/5.7/en/assigning-passwords.htm..
Docker Mysql 5.7 설치하기
2023. 3. 8. 12:27
DevOps/Docker
Docker 에서 mysql 을 설치하는 과정을 정리해봤다. 먼저 도커 에서 mysql 이미지를 확인해본다. docker search mysql 사진과 같이 mysql 의 이미지를 확인할 수 있다. 나는 mysql 5.7 버전을 사용할 예정이라 mysql 5.7 버전의 이미지를 가져왔다.(pull) 버전은 해당 이미지의 태그를 나타내는 콜론(:) 을 사용해 버전을 입력할 수 있다. docker pull mysql:5.7 그리고 설치된 이미지를 확인할 수 있다. 이제 mysql 이미지를 통해 도커 컨테이너를 실행해보자. 아래와 같이 실행할 경우 컨테이너 실행이 제대로 되지 않았다. docker run -d --name mysql-5.7 -p 3306:3306 mysql:5.7 그래서 로그를 확인해보니 다음..
Python reduce() 함수
2023. 3. 1. 16:32
프로그래밍 언어/Python
redue() 함수 reduce() 함수는 “반복 가능한 객체(iterable object)” 의 각 요소를 연산한 후 이전 연산 결과들과 누적해서 반환해주는 함수이다. 쉽게 말해 연산의 결과들을 누적해서 반환해준다고 볼 수 있다. 여기서, 반복 가능한 객체는 말 그대로 반복이 가능한 객체로 요소가 하나의 객체에 들어있고 한번에 하나의 요소를 가져와서 사용할 수 있는 객체를 말한다. 파이썬에서는 String, list, dict, tuple, set 이 있는 것을 알 수 있다. reduce() 함수를 사용하기 위해서는 functools 모듈에서 reduce() 함수를 불러와야 한다. 예를 들어 사용해보자. 리스트 모든 원소의 곱셈 numbers = [1, 2, 3, 4, 5] sum_numbers = r..