프로그래밍
[Hadoop] HDFS - The Hadoop Distributed File System
HDFS란? 하둡 분산 파일 시스템 (Hadoop Distributed File System)으로써 대용량 데이터 사용 및 관리를 효율적으로 하기 위해 설계한 파일 시스템. 이번 글부터는 Hadoop Component들을 하나씩 소개해드릴 예정입니다. 하둡이라는 것이 이미 10년 전부터 유행해 인기가 있었지만 최근 AI 및 딥러닝이 발전함과 동시에 빅데이터라는 분야가 동시에 핫해졌습니다. 빅데이터도 분야가 크게 두 가지로 데이터 엔지니어링, 데이터 분석으로 나눠집니다. 이 중에서 하둡이 메인으로써 사용되는 것이 빅데이터 엔지니어링입니다. 하둡 생태계에서 가장 기본인 HDFS 부터 소개하겠습니다. HDFS 는 하둡 분산 파일 시스템으로써 대용량 데이터 사용 및 관리를 하기 위해 설계한 파일 시스템입니다. ..
[Jupyter] JupyterLab 내부 환경 변수 설정하기
JupyterLab 내부 환경 변수 설정 JupyterLab 내부 환경 변수를 kernel.json 파일을 통해서 설정할 수 있습니다. Python에서 hdfs 경로에 접근 빅데이터 플랫폼에서 JupyterLab를 사용할 때 pydoop을 import 해서 사용하는 경우가 있습니다. 그중에서도 pydoop의 hdfs를 import 하면 직접 hdfs 경로 및 파일에 접근할 수 있습니다. hdfs 에 "test"라는 파일이 존재할 때 python에서 이 파일에 접근하는 방법은 아래와 같습니다. 하지만 위의 명령어를 수행할 때 "HADOOP_CONF_DIR"가 세팅되어 있지 않다는 에러가 발생합니다. 이는 hadoop의 conf 폴더 경로가 설정되어 있지 않다는 것을 의미하는데 해당 에러는 아래와 같이 나타..
[C++] Split #2 - multiple delimiter split 함수 구현
split string이 주어져 있을 때 내가 원하는 글자를 기준으로 잘라 배열에 저장시키는 기능. strtok( 문자열의 시작 주소, 찾기 시작할 위치 ) String 함수로써 string 글자에서 원하는 글자를 찾아 시작 위치를 반환받을 수 있습니다. ( Overloading 되어있기 때문에 parameter가 더 있음 ) 관련 글 [C++] Split #1 - String delimiter split 함수 구현 이번에는 지난번 글에 이어서 C++에서의 split 기능을 두번째로 구현해보겠습니다. 이번 글에서 구현할 split은 이전 글에서도 언급했지만 다수의 delimiter를 기준으로 String을 나눠주는 기능입니다. 이러한 기능의 split은 얼핏 기억을 떠올려보면 사칙연산의 식이 input으..
[C++] Split #1 - String delimiter split 함수 구현
split string이 주어져 있을 때 내가 원하는 글자를 기준으로 잘라 배열에 저장시키는 기능. find( 찾을 글자, 찾기 시작할 위치 ) String 함수로써 string 글자에서 원하는 글자를 찾아 시작 위치를 반환받을 수 있습니다. ( Overloading 되어있기 때문에 parameter가 더 있음 ) 관련 글 [C++] Split #2 - multiple delimiter split 함수 구현 이번에는 C++에서 split 기능을 구현해보겠습니다. C++로 string 알고리즘 문제를 푼 사람들은 알 겁니다. 다른 언어에 비해 C++가 string 관련 함수가 아주 빈약하다는 것을... 저도 마찬가지로 string 알고리즘 문제를 풀 때마다 "C++ split" 이라는 키워드로 구글링을 했..
[C++] 2차원 배열 행렬 바꾸기
2차원 배열 행렬 바꾸기 2차원으로 선언된 배열을 2중 for문을 이용하여 행렬을 바꿀 수 있습니다. memmove( 배열 A 시작 주소, 배열 B 시작 주소, 크기 ) 배열간의 값 복사를 할 수 있는 함수로 B의 배열 값들을 A로 복사하는 기능을 제공합니다. 관련 글 [C++] 2차원 배열 90도 회전 지난번에 올렸던 2차원 배열 90도 회전에 이어서 이번에는 2차원 배열 행렬 바꾸기를 소개하겠습니다. 사실 행렬 바꾸기는 90도 회전에 비해서 상당히 간단합니다. 하지만 유용한 함수를 사용하지 않으면 2중 for문이 반복적으로 사용되기 때문에 지저분한 코딩이 될 수 있습니다. 그래서 90도 회전과 마찬가지로 memmove() 함수를 사용하면서 코드를 비교적 깔끔하게 작성할 수 있습니다. 행렬 바꾸기의 좌..
[C++] 2차원 배열 90도 회전
2차원 배열 90도 회전 2차원으로 선언된 배열을 2중 for문을 이용하여 90도 회전 시킬 수 있습니다. memmove( 배열 A 시작 주소, 배열 B 시작 주소, 크기 ) 배열간의 값 복사를 할 수 있는 함수로 B의 배열 값들을 A로 복사하는 기능을 제공합니다. 관련 글 [C++] 2차원 배열 행렬 바꾸기 알고리즘 문제를 풀다보면 2차원 배열을 계속해서 회전시켜야할 때가 있습니다. 90도, 180도, 270도 회전을 시킬 때 각각을 구현하여 문제를 해결할 수 있겠지만, 90도 회전하는 법을 알면 함수로 선언 후 반복적으로 이용하면 됩니다. 이렇게 하는 것이 코드도 깔끔해지고 시간도 절약할 수 있습니다. 2차원 배열을 90도 회전시키는 방법은 2중 for문을 이용해 행렬을 서로 바꿔주면 쉽게 해결할 수..