본문 바로가기

IT 지식51

내부망에서 yum 사용 개발이 완료된 후에는 클라이언트의 서버에 개발 완료된 프로그램을 배포해주어야 한다. 하지만 당연하게도 프로그램은 단일로 동작하지 않고, Java, DB등 여러 인프라가 필요하다. 만약 서버가 외부망에 연결된 환경이라면 yum이나 wget 등 명령어를 통해 인프라를 쉽게 설치가 가능하겠지만, 대부분은 그렇지 않고 결국 오프라인 환경 (내부망 환경)에서 설치를 수행해야 할 일이 많았다. wget의 경우는 그냥 단순하게 파일을 옮기기만 하면 된다. 하지만 yum은? 꽤나 번거로운 작업을 요구했다. 그동안은 사수분께서 인프라 설치를 도맡아 해주셨지만 팀이 내부적으로 분리된 지금은 내가 그 역할을 수행해야 했고, 이에 대비하기 위해 공부한 내용을 까먹지 않기 위해 저장하고자 한다. 1. Offline에서 yum .. 2022. 12. 10.
Apache Bigtop을 이용한 Hadoop 설치 이전 포스팅에서 이어진다. https://123okk2.tistory.com/400 멀티노드에 Hadoop 설치해보기 Hadoop 하둡은 빅데이터의 처리를 위한 자바 기반의 오픈소스 프레임워크로, 야후의 더그 커팅이 '넛치' 라는 검색 엔진을 개발하는 과정에서 대용량의 비정형 데이터를 철이하기 위해 구글의 GFS 123okk2.tistory.com 이전 포스팅에서 확인할 수 있다시피 멀티노드에 Hadoop을 설치하는 작업을 수행해보았다. 겉보기에는 정상적으로 설치가 완료되긴 했으나, 그렇다고 장담할 수도 없었다. 이유라면 아래와 같았다. 메뉴얼이 별도로 명확하게 존재하지 않아 인터넷의 여러 글들을 종합해 설치했으므로 정상적으로 설치가 된 것인지 확신할 수 없다. 각 에코시스템을 테스트하는 방법을 몰라 확.. 2022. 10. 24.
멀티노드에 Hadoop 설치해보기 Hadoop 하둡은 빅데이터의 처리를 위한 자바 기반의 오픈소스 프레임워크로, 야후의 더그 커팅이 '넛치' 라는 검색 엔진을 개발하는 과정에서 대용량의 비정형 데이터를 철이하기 위해 구글의 GFS와 MapReduce 관련 논문을 참고하여 개발한 기술이다. 기존에는 데이터 처리를 하나의 고사양 컴퓨터에서 수행했다. 하지만 하둡은 빅데이터의 처리를 위해 하나의 컴퓨터가 아닌, 여러 컴퓨터를 사용하는 방식을 채택했다. 상세하게 말하자면 여러 대의 컴퓨터를 클러스터화 시켜 병렬로 연결하고, 이를 토대로 동시 처리 속도를 높이는 기술을 채택했다고 볼 수 있다. 하둡의 장점으로는 시스템을 중단하지 않고도 장비 추가가 가능하다. 병렬적으로 컴퓨터들을 이어놓았으니 당연한 일이다. 그리고 이러한 특징으로 인해 일부 장비.. 2022. 10. 23.
[알고리즘] DP 취업 준비를 시작하며 알고리즘을 배울 때 아, 이건 DFS 문제구나. 라고 생각해서 DFS로 푼 문제가 있었다. 하지만 정확도는 100%여도 효율성은 0에 가까운 결과를 보여주었었는데, 같은 알고리즘을 풀던 친구에게 물어보니 해당 알고리즘은 DFS가 아니라 DP로 풀어야 한다고 대답을 해줬었던 기억이 있다. DP (동적 계획법, Dynamic Programming) 알고리즘을 풀다보면 연산이 쓸데없이 반복되는 경우가 있다. 피보나치 수열이 그 예시이다. 피보나치 수열 첫째, 둘째 항이 1이며 그 뒤의 모든 항들은 앞의 두 항의 합인 수열. 평범한 피보나치 수열 구하기 문제의 코드는 다음과 같다. public class main{ public static void main(String[] args) { i.. 2021. 10. 26.
[알고리즘] BFS와 DFS 그래프 탐색 그리프란 정점과 간선으로 이루어진 자료구조의 일종이다. 그리고 그래프에서의 탐색은 하나의 정점, 즉 시작점에서 출발하여 차례대로 정점을 방문하여 목표 정점을 방문하는 것을 말한다. 예를 들자면 그래프 내 어떤 노드와 다른 특정 노드가 연결되어 있는지를 검사하는 것, 혹은 사람간의 관계가 이어져있는지 검사하는 것이 바로 그래프 탐색이다. BFS와 DFS는 모두 이러한 그래프 탐색 알고리즘의 일종이다. BFS (너비 우선 탐색, Breadth-First Search) BFS는 쉽게 말해, 인접한 노드들을 전부 방문한 후 다음 노드로 이동하는 방법이다. 아래와 같은 그래프가 있다고 가정하자. BFS를 위해 다음 두 개의 조건을 설정하자. 시작 노드는 1이다. 다음 노드로 향할 때 숫자가 작은 노드.. 2021. 10. 26.
[시계열 분석 모델] AR, MA, ARIMA 시계열 데이터 시계열 데이터란, 시간의 순서에 따라 관찰되고 나열된 데이터이다. 이는 시퀀스 데이터의 일종으로, 과거 정보가 미래 정보에 영향을 끼치고, 이러한 특성으로 인해 한 시점의 데이터 단독으로는 예측 및 분석이 불가능하다. 정상성과 비정상성 정상성이란 다음 항목들을 만족하는 시계열이다. 평균이 일정해야 한다. 분산이 시점에 의존하지 않아야 한다. 공분산은 시차에만 의존한다. 즉, 시점 자체에 의존하지 않는다. 한 마디로 표현하자면, 관찰을 하는 시간에 상관 없이 일정한 평균과 분산을 갖고, 공분한은 시차에만 의존한 데이터이다. 그래서 특정 시기, 혹은 특정 순간에 값이 크게 변동되는 추세나 계절성이 있는 시계열은 정상성을 만족하지 않는 비정상 시계열이다. 그런데 당연히 현실 세계의 시계열 데이터.. 2021. 10. 12.
[빅데이터] 빅데이터 분석 단계 출처 : https://book.naver.com/bookdb/book_detail.nhn?bid=14412152 빅데이터 분석과 활용 현장 전문가가 직접 전하는4차 산업혁명 시대에 어울리는 빅데이터 구축 노하우!이 책은 4차 산업혁명 시대에 왜 빅데이터가 중요한가에 대해 말하고, 실제로 빅데이터를 구축하려면 어떠한 기 book.naver.com *해당 글은 학습을 목적으로 위의 도서 내용 중 일부 내용만을 요약하여 작성한 포스팅입니다. 상세한 내용 및 전체 내용 확인을 원하신다면 도서 구매를 추천드립니다. 빅데이터 분석의 전체 과정 빅데이터 분석 과정은 데이터를 모으는 수집, 이를 저장하는 저장, 통계, 텍스트 마이닝, 머신러닝 등을 활용한 분석, 그리고 이를 전달하는 리포팅&시각화 단계가 있다. 이에.. 2021. 8. 8.
[빅데이터] Spark & Zeppelin ​ Apache Spark는 2011년 버클리 대학의 AMPLab에서 개발되어 아파치 재단의 오픈소스로 관리되고 있는 인메모리 기반의 대용량 데이터 고속 처리 엔진으로, 범용 분산 클러스터 컴퓨팅 프레임워크이다. Apache Spark는 다음과 같은 특징을 가진다. 1) 인메모리 기반의 빠른 처리 기존의 하둡의 작업처리인 맵리듀스는 작업의 중간 결과를 디스크에 쓰는 과정을 거쳤고, 이로 인해 작업 속도가 떨어지는 결과가 생겼다. 그에 반해 스파크는 중간 결과를 디스크가 아닌 메모리에 저장을 하는 방식을 채택했고, 이로 인해 반복 작업의 처리 효율이 높아졌다. 2) 다양한 언어 제공 Java, Python, R, Scala 등 다양한 언어를 제공한다. 3) 다양한 컴포넌트 제공 추가적인 소프트웨어의 설치 .. 2021. 7. 30.
[빅데이터] Sqoop & Flume Sqoop과 Flume은 하둡에서 데이터를 수집하는 데 사용되는 프로그램들이다. Sqoop의 경우에는 기존 DB에 탑재된 데이터를 그대로 하둡의 DB에 가져오게 되고, Flume은 이벤트 스트리밍 위주로, 이벤트 데이터를 하둡으로 전달하는 역할을 담당한다. Sqoop 먼저 Sqoop은 앞서 서술하였듯, 기존 DB, 그 중에서도 RDBMS와 하둡 간 데이터를 전송할 수 있도록 설계된 자바 기반의 오픈소스 소프트웨어이다. 간단한 CLI를 활용해 오라클, MySQL 등의 RDBMS에서 특정 테이블 혹은 조건에 맞는 데이터를 HDFS로 옮길 수 있고, 이를 Hive, Pig, HBase 등으로 바로 옮겨 확인할 수 있다. 물론, 반대의 경우도 가능하다. 맵 리듀스의 맵 만을 사용하는 것이 특징이다. Sqoop .. 2021. 7. 30.
[빅데이터] 하이브 데이터 웨어하우스는 의사결정 지원에 효과적으로 사용될 수 있도록 다양한 시스템에서 추출, 변환, 통합, 요약된 읽기 전용의 데이터베이스이다. 그리고 하이브는 하둡에서의 데이터 웨어하우스로 볼 수 있다. 하이브는 HDFS와 연계되어 작동하는데, 작동 순서는 다음과 같다. HDFS에 테이블 생성 HDFS에 테이블 저장 메타스토어에 테이블 정보 저장 테이블에 데이터 로드 HiveQL 실행 MapReduce 형태로 변환되어 실행 결과 반환 *HiveQL : Hive에서 사용되는 SQL로, 사용법은 일반 RDBMS의 SQL과 유사. 하이브를 구성하는 아키텍처는 다음과 같다. User Interface : 사용자에 HDFS를 사용하기 위한 인터페이스 제공 (Web UI, CLI) Meta Store : DB의 메타.. 2021. 7. 29.
[빅데이터] 하둡2와 얀(YARN) 기존의 하둡에서는 에코 시스템에 대한 적절한 리소스 관리 방안이 없었다. 또한 SPOF(Single point of failure, 단일 고장점) 라는, 시스템의 구성 요소 중 고장나서는 안되는 요소가 고장나는 일이 발생했다. 하둡에서는 네임노드가 SPOF에 해당되는데, 이 문제의 극복을 위해 네임노드의 이중화가 필요해졌다. 또한 데이터노드 블록들의 단일 네임스페이스 문제도 발생했다. 이러한 여러 문제점을 개선하기 위해 하둡2와 YARN이 등장했다. 하둡2의 특징은 다음과 같다. 1) YARN을 포함 2) 네임노드의 고가용성 3) HDFS 페더레이션, 스냅샷 지원 4) NFSv3 파일 시스템 지원 5) 성능 개선 이 중 가장 눈여겨 볼 만한 점은 바로 YARN이다. YARN은 (Yet Another Re.. 2021. 7. 29.
[빅데이터] 맵리듀스 맵리듀스 (MapReduce) 맵리듀스는 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 개발한 프레임워크이다. 성능이 낮은 컴퓨터로 구성된 클러스터 환경에서 병렬 처리를 지원하기 위해 개발되었다. HDFS가 하둡의 저장소를 담당했다면, 맵리듀스는 하둡에서 연산을 담당한다. 정렬된 데이터를 한 줄씩 읽어 데이터를 변형하는 Map 단계와, 그 결과를 집계하는 Reduce 단계로 구성된다. 맵리듀스를 사용하면 대규모 분산 컴퓨팅 환경에서 대량의 데이터를 병렬 처리할 수 있다. 맵리듀스 예시 - WordCount 다음의 텍스트가 있다고 해보자. I am a boy You are a girl We love each other 맵 단계에서는 데이터를 한 줄, 즉 레코드 단위로 입력을 받.. 2021. 7. 29.