본문 바로가기

분류 전체보기52

Beeline을 이용한 Hiveserver2 접근(feat. Ubuntu) Hiveserver2는 Hadoop의 주요 기능인 HDFS와 MapReducer에 외부로부터 쉬운 접근을 위한 인터페이스 같은 존재이다. Hiveserver2를 이용하면 외부에서도 Hadoop에 접근이 가능하다. 외부에서 접근할 때 우리는 Beeline 툴을 사용할 것이다. 1. beeline -u jdbc:hive2://localhost:10000/userdb (뜻 : hive2를 Java Database Connectivity를 이용하여 localhost 10000번의 userdb에 접근한다, 이때 10000번은 우리가 사전에 지정했던 숫자, userdb는 만들었던 Database이다.) *beeline이 있는 디렉토리에서 실행한다. (나의 경우 hive-3.1.2/bin/) 만약 에러가 발생한다면 .. 2021. 9. 10.
Dijkstra(다익스트라) Dijkstra(다익스트라)는 최단거리 탐색 알고리즘이라고도 부른다. 한 정점으로부터 다른 정점까지의 최단 경로를 구할 때 사용할 수 있다. DFS(깊이 우선 탐색)와 BFS(넓이 우선 탐색)의 기본 개념이 연결되어 있는 모든 노드를 탐색한다 라면 다익스트라는 연결되어 있는 노드들간에 간선의 가중치가 존재하고 그 가중치를 기준으로 두 노드간의 최단 거리를 구한다는 개념이다. 현실에서 다익스트라 알고리즘은 GPS, 네비게이션 등에서도 이용된다. 하나의 최단거리를 구할 때 그 전의 최단거리 정보들을 사용하기 때문에 기본적으로 다이나믹 프로그래밍 문제에서 많이 다루는 알고리즘 중 하나이다. 2021. 9. 10.
프로그래머스_단어변환 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 이 문제는 DFS, BFS 두 알고리즘이 가장 먼저 떠올랐지만 최단거리가 문제의 주요 핵심인 만큼 Dijkstra(다익스트라)를 써야겠다고 생각 들었다. 물론 DFS, BFS로 구현이 불가능한 것은 아니지만 다익스트라 구현이 더 끌렸다..ㅎ ◎ Code import numpy as np def solution(begin.. 2021. 9. 10.
프로그래머스_네트워크 https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr ◎ Code from collections import deque def solution(n, computers): check_network = [False for _ in range(n)] answer = 0 def bfs(index) : queue = deque() queue.append(index) while queue : index = queue.p.. 2021. 9. 10.
Hiveserver2(Feat. Ubuntu) 기존에 Hive shell을 이용한 작업은 로컬에서만 작업을 하는 방식이다. 하지만 외부에서 hadoop에 접근을 하여 일처리를 해야 한다면 hiveserver2(외부 접근 기능)을 이용한다. hiveserver2로 url을 만들어놓면 예를들어 외부에서 Python을 이용하여 해당 url에 접근 및 일처리가 가능하다. 1. cd ~/hive-3.1.2/bin hive-3.1.2/bin 디렉토리로 이동 *hive-3.1.2는 사용하는 hive 버전에 따라 다르게 작성. 2. hiveserver2 hiveserver2를 입력하고 엔터(하둡 시스템이 running상태여야함, 아니라면 start-all.sh 먼저 실행) **만약 위와같이 실행이 되지 않고 에러가 뜬다면 log파일을 확인해보자 ls -al /tm.. 2021. 9. 9.
HiveQL 명령어(feat. Hive shell) *Hive로 접속하는 법은 간단하게 터미널에 hive 입력 1. show databases; 데이터베이스 출력 2. create database userdb; userdb라는 데이터베이스 생성 3. use userdb; 위에서 만든 userdb 데이터베이스를 사용 선언 4. 테이블 안의 컬럼 : eid(int), name(str), salary(string), destination(string) 'no_auto_compaction' = 'true' 안해주면 입출력할때 에러가 생김 5. show tables; 테이블 리스트를 보여준다 6. LOAD DATA LOCAL INPATH 'employee.csv' OVERWRITE INTO TABLE employee; employee테이블에 로컬 파일의 emplo.. 2021. 9. 9.
Hive 설치(Feat.Ubuntu) # Hive란 Hadoop에서 데이터 저장을 담당하는 HDFS와 처리/ 분석을 담당하는 MapReducer의 처리를 도와주는 Echo- System이다 # Hive 3.1.2 버전을 설치하는 방법이다. # Hive는 기본적으로 Apache 재단에서 배포한다. 1. https://downloads.apache.org/hive/hive-3.1.2/ Index of /hive/hive-3.1.2 downloads.apache.org 2. 위 링크에 접속하여(혹은 자신이 원하는 버전의 링크) bin.tar.gz 파일을 다운로드 한다. 3. tar -xvzf apache-hive-3.1.2-bin.tar.gz 위에서 다운받은 설치 파일을 압축해제 한다. 4. mv apache-hive-3.1.2-bin hive-.. 2021. 9. 9.
DFS(Depth First Search) 깊이 우선 탐색 깊이 우선 탐색(DFS) - 그래프 탐색의 방법중 하나 (그래프 탐색 : 하나의 노드로부터 나머지 모든 노드까지 차례대로 탐색하는 것) 동작 원리 - 하나의 노드로부터 자식 노드를 확인할 때, 모든 자식노드를 먼저 탐색하지 않고 한 자식노드에 대한 자식노드를 우선시 한다. 예) 1. 0번 노드부터 시작할 때, 자식노드 1과 2중 먼저 들어온 1을 확인한다. 2. 노드 1을 탐색하고 노드 1에 대한 자식노드 3, 4중에 먼저 들어온 3을 탐색한다. 3. 노드 3을 탐색하고 노드 3에 대한 자식노드가 없으므로 노드 3의 부모노드인 노드 1로 재귀(back-tracking)한다. 4. 노드 1의 자식노드 중 노드 3은 이미 탐색 했으므로 탐색하지 않은 노드 4를 확인한다. 5. 노드 4에 대한 자식노드가 없으.. 2021. 9. 9.
프로그래머스_타겟넘버 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr ◎ Code def solution(numbers, target): answer = 0 def back(result, point) : if point == len(numbers) : if result == target : nonlocal answer answer += 1 return back(result + .. 2021. 9. 9.