Hive란? Hive는 하둡에서 데이터를 처리하기 위한 데이터 웨어하우징 솔루션 중 하나입니다. Hive는 SQL을 사용하여 대규모 데이터 집합을 분석할 수 있도록 해주는 데이터 웨어하우스 솔루션입니다. Hive는 하둡 기반의 분산 데이터 저장소에서 SQL 쿼리를 실행할 수 있도록 해주는 인터페이스를 제공합니다. Hive는 HiveQL이라는 SQL과 비슷한 언어를 사용하여 데이터에 대한 쿼리 및 분석을 수행합니다. HiveQL은 기존의 SQL과 유사하며, 사용자는 대부분의 경우 HiveQL을 배우기 쉽습니다. 또한 HiveQL은 사용자가 쉽게 커스텀 함수와 집계 함수를 정의하고 사용할 수 있도록 해줍니다. Hive는 맵리듀스와 같은 하둡의 다른 기술과 함께 사용될 수 있으며, 대규모 데이터 처리 및 분석..
Endswitch Endswitch는 두 개의 파라미터를 이용하여 첫 번째에 입력한 문자열이 두 번째에 입력한 문자열로 끝이 나는지 확인할 수 있는 기능 앞 예제의 A 릴레이션의 데이터 중 name 속성의 값이 n으로 끝나는 속성이 있는지 검사하고, id 속성과 name 속성을 X 릴레이션에 저장 후 출력 X = FOREACH A GENERATE (id, name), ENDSWITH(name, 'n'); DUMP X; Startswitch : Endswitch와 동일함 Substring 주어진 문자열에서 지정한 인덱스만큼 문자열을 추출할 수 있는 기능 앞선 A 릴레이션에 SUBSTRING을 추가하여 name 속성값의 0번째 부터 (2-1) 번째 인덱스까지 추출하여 저장 후 출력 stopindex는 마지막..
Max 해당 속성의 최댓값을 찾을 수 있음 sample_data 수정 후 저장 A 릴레이션에 값 저장 B 릴레이션에 A 릴레이션 그룹화 X 릴레이션에 FOREACH ~ GENERATE 구문을 통해 A 릴레이션의 이름 중 최댓값을 가진 tail 속성의 데이터를 저장 A = LOAD 'sample_data' AS (name:chararray, tall:int); B = GROUP A All; X = FOREACH B GENERATE A.name, MAX(A.tall); DUMP X; Min 도 Max 와 동일하게 동작한다. Size Size 함수는 데이터의 행의 지정한 속성의 데이터 길이를 반환 앞에서 실시한 A 릴레이션의 원본 데이터 중 첫 속성인 name의 값의 길이를 X 릴레이션에 저장 후 출력 X =..
Limit DUMP를 이용하여 출력할 때 출력되는 튜플의 계수를 제한 아래 예제는 최대 3개의 출력만을 가진다. X = LIMIT A 3; DUMP X; Order by 릴레이션의 튜플이 있을 때 하나의 속성을 기준으로 정렬할 수 있는 명령어로 오름차순(ASC), 내림차순(DESC)이 가능 sample_data 수정 후 저장 A에 데이터의 속성 이름과 데이터 형태 지정 후 저장 a3 속성을 내림차순 정렬 A = LOAD 'sample_data' AS (a1:int,a2:int,a3:int); X = ORDER A BY a3 DESC; DUMP X; Rank Rank는 릴레이션의 튜플이 있을 때 하나의 속성을 기준으로 순위를 지정하여 반환 sample_data 수정 및 HDFS에 저장 A 릴레이션에 데이터..
COGROUP COGROUP 은 GROUP과 같은 역할을 하지만, 차이점은 GROUP 하나의 릴레이션에 그룹화를 하지만, COGROUP은 두 개 이상의 릴레이션에 그룹화를 지정할 수 있다는 것이다. sample_data 수정 후 저장 sample_data2 수정 후 저장 A와 B 릴레이션에 데이터 속성 이름과 데이터 타입을 저장 X 릴레이션에 COGROUP BY 구문을 이용하여 A 릴레이션의 owner 속성과 B 릴레이션의 friend2 속성을 그룹화 후 출력 A = LOAD 'sample_data' AS (owner:chararray,pet:chararray); B = LOAD 'sample_data2' AS (friend1:chararray,friend2:chararray); X = COGROUP A..
형 변환(cast) 연산자 sample_data 수정 후 HDFS에 저장 A = LOAD 'sample_data' AS (f1:int, f2:int); B = GROUP A BY f1; DUMP B; B 릴레이션에 GROUP BY를 통해 f1 속성 값을 기준으로 Inner Bag 형태로 튜플이 생성된 것을 확인 데이터 형 변환 X 릴레이션의 첫 번째 속성은 B 릴레이션의 첫 번째 값인 group 두 번째 속성은 A 릴레이션에 COUNT 함수를 이용하여 int 형태의 데이터를 chararray 형태로 변환하여 Inner Bag 데이터의 개수를 total 속성명으로 변경하여 저장 후 확인 X = FOREACH B GENERATE group, (chararray)COUNT(A) AS total; DUMP X;..
PIG란 대용량 데이터를 다루기 위한 스크립트 언어이다. MapReduce는 분산처리를 가능하게 해주는 서비스이지만 한 번 처리를 위해서는 복잡한 java 로직이 필요하다. 이는 너무 어렵기 때문에 PIG와 HIVE라는 언어가 만들어졌다. PIG는 데이터 구조를 자세히 검토할 수 있는 여러 명령어를 제공하며, 입력데이터의 대표 부분 집합에 대해 표본실행이 가능하다는 장점이 있다.(오류 점검에 사용) 또한 확장가능성도 높다. 다만 소량의 데이터에는 MapReduce 과부하가 발생하기 떄문에 비효율적이다. Hortonworks HDP 3.0을 다운로드하여 설치해 줍니다. https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.0/release-notes/content/r..
하둡 설치에 대해서 궁금하시다면 메일 바랍니다. 따로 자료 공유 드리겠습니다. 데이터를 수집하여 하둡에 분산 저장한다. 몽고 DB도 하둡같은 기술을 사용하여 분산저장으로 구현한다. FLUME은 txt 같은 로그파일을 수집할 때 많이 사용한다. Sqoop은 정형데이터를 수집할 때 많이 사용한다. 리눅스 설정 가상머신 4개를 만들어 하둡 분산환경 시스템을 구축하자. HDFS :Hadoop Distributed file system Web Server : Tomcat, Nginx : txt 파일로 로그를 관리함 → Agent의 설정으로 5분에 한 번씩 하둡에 저장하는 등의 방식으로 설정 가능. - Web Server 대신에 Linux System(다중사용자용 로그발생관리), FTP 등이 들어가기서 해당 장소에..
의사가상분산 모드 분산되어 있지 않은 PC를 분산된 것처럼 보이게 하는 방식 - 하둡을 연습하기 위해 만든 거임 하둡 명령어는 대부분 리눅스 명령어와 유사하다 1. 블록 관련 명령어 hadoop ls hadoop fs -ls /user/root/temp에 ls 하기 hadoop fs -ls /user/root/temp 데이터 넣기 리눅스 → 하둡 hadoop fs -put 파일이름 저장할 경로 하둡은 데이터를 분산하는 기준(block size)이 존재한다. block size 보다 작은 데이터는 분산하여 저장하지 않는다. hadoop fs -D dfs.block.size=1048576 -put 파일이름 저장할 경로 를 사용하여 block size를 지정하여 저장가능하다. 2. 디렉터리 관련 명령어 dir..