네이버에서 발표한 자료를 통해 하둡 클러스터를 운영하면서 주의해야 할 사항에 대해서 알아보겠습니다. 네임노드 네임노드는 힙메모리에 HDFS에 존재하는 모든 파일의 메타정보를 저장하고 있습니다. 네임노드 JVM의 힙메모리 사이즈(만 블록당 1G의 메모리가 사용)에 따라 전체 파일, 블록의 개수가 제한됩니다. 파일, 블록이 많이 생성되어 메모리의 한계치에 도달하면 JVM의 힙메모리를 늘려야 합니다. 하지만 메모리 설정을 변경하려면 네임노드를 재기동해야 하고, 네임노드는 재기동 할 때 블록 정보를 재구축하기 위해 fsimage, edits 파일을 읽어서 블록정보를 재구축합니다. 또한 데이터노드로 부터 블록 정보를 받아서 결과를 연동합니다. 이 과정에서 파일 개수가 많을수록 재기동에 걸리는 시간이 길어지고, 이..
하둡 자바로 구현된 대규모 분산처리를 위한 오픈소스 프레임워크야후의 더그 커팅이 '넛치'라는 검색엔진을 개발하는 과정에서 개발 비정형 데이터를 RDB에서 처리하기에는 사이즈가 커서 새로운 기술이 필요하게 됨 구글에서 발표한 GFS와 MapReduce 관련 논문을 참고하여 개발 하둡의 구성 분산저장(HDFS:Hadoop Distributed File System), 병렬처리(MapReduce) 프레임워크로 구성 분산저장 여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장 병렬처리 분산되어 저장된 데이터를 데이터가 존재하는 위치에서 동시에 처리 하둡의 장단점 장점 오픈소스로 라이선스에 대한 비용 부담이 적음 시스템을 중단하지 않고, 장비의 추가가 용이(Scale Out) 일부 장비에 장애가 발생하더라도 전..
-맵리듀스란?하둡 클러스터를 이용하여 대용량데이터를 병렬로 처리하는 프레임워크맵과 리듀스 2단계로 데이터를 분석 -Context Object의 사용법은?하둡의 매퍼가 다른 하둡 시스템과 통신하기 위해서 사용 -리듀서의 코어 메소드는?setup()입력데이터 사이즈, 힙 사이즈, distribute cache 설정 등을 진행reduce()입력된 데이터를 이용하여 리듀스 작업 진행cleanup()리듀스의 마지막에 임시 파일을 삭제하기 위해 한번만 호출 -파티셔닝, 셔플, 소트 페이즈에 대해서 설명하시오.셔플맵 태스크의 처리 결과로 임시 저장된 중간 파일을 리듀서로 넘기는 작업을 셔플소트맵 단계 결과를 리듀서로 넘기기 전에 키를 기준으로 자동으로 정렬을 진행 하는 것파티셔닝맵의 중간값을 리듀서의 입력으로 넘기기..
하둡의 매퍼 리듀서 개수는 입력사이즈에 의해서 설정하는 방법과 사용자가 개수를 설정하는 방법이있다. set mapreduce.input.fileinputformat.split.maxsize=268435456;set mapreduce.input.fileinputformat.split.minsize=134217728; set mapred.reduce.tasks=-1;set hive.exec.reducers.bytes.per.reducer=134217728; set mapreduce.job.maps=100; set mapreduce.job.reduces=100; * 하둡 위키에 따르면 매퍼의 개수는 하둡이 계산한 매퍼의 개수 이하로는 설정할 수 없다고 한다. 하둡이 매퍼의 개수를 500개로 계산했는데 100개..
빅데이터 관련해서 정보를 찾던 중에 빅데이터 관련 면접에서 알아두면 좋을 내용이 있어서 스크랩해 보았다. 공부해 두면 좋은 내용들이어서 정리 해 보았다. 1. 하둡과 전통적인 RDBMS의 차이점은? 데이터 타입: 하둡은 정형, 반정형, 비정형 데이터: RDBMS는 정형 데이터 스키마: 하둡 - Schema on Read: RDBMS - Schema on Write: 데이터를 읽을 때 스키마를 적용하느냐, 데이터를 적재할 때 스키마를 적용하느냐: https://goo.gl/images/dQiQCJ 좋은 사용법: 하둡은 대용량 데이터 처리: RDBMS는 OLTP 데이터 처리나 복잡한 ACID 트랜잭션에 적용 속도: 하둡은 쓸 때 빠르고 : RDBMS는 읽을 때 빠르다. 2. 빅데이터에서 4V는 무엇을 말하나..
하이브 처리중 다음과 같은 오류가 발생하는 경우는 scratchdir 를 설정해 주면된다. 아래의 오류는 getScratchDir() 메소드를 호출하다가 오류가 발생한것을 알 수 있다. 따라서 아래의 설정을 해주면 된다. hive.exec.scratchdir/tmp/hivehive.exec.local.scratchdir/tmp/hive 위의 설정은 하이브 처리중 사용하는 플랜 파일이나, 임시 파일들을 저장하기 위하여 사용한다. 2017-01-13 07:33:08,521 INFO [hive-job uber-SubtaskRunner] org.apache.hadoop.hive.ql.exec.SerializationUtilities: Serializing MapredWork using kryo2017-01-13..
우지 workflow.xml 에서 현재 액션의 스탠다드 아웃풋(출력)을 다음 액션의 파라미터로 이용이 가능하다. 쉘 액션에 를 입력하고다음 액션의 파라미터에서 ${wf:actionData('shellAction')['dateVariable']}와 같이 이용하면 된다. 쉘 액션의 이름과 출력 파라미터를 잘 조정하면 된다. 쉘 액션은 다음과 같이 출력하면 된다. echo "dateVariable=${dateValue}" http://stackoverflow.com/questions/30873891/passing-parameters-from-one-action-to-another-in-oozie
HDFS에 파일 업로드시에 권한문제가 발생하여 파일 업로드가 안 될 경우가 있다. Permission denied: user=alice, access=WRITE, inode="staging":hduser:supergroup:rwxr-xr-x 보통 하둡에 설정된 사용자명과 현재 사용자 명이 달라서 발생하는 오류이다. 이럴때는 아래와 같이 하둡 사용자 명을 설정하여 해결한다. System.setProperty("HADOOP_USER_NAME", "hduser") export HADOOP_USER_NAME= http://stackoverflow.com/questions/11041253/set-hadoop-system-user-for-client-embedded-in-java-webapphttp://stacko..
- Total
- Today
- Yesterday
- 하이브
- Linux
- 정올
- oozie
- error
- AWS
- 우지
- 하둡
- S3
- 파이썬
- Hadoop
- nodejs
- Tez
- hbase
- emr
- Python
- 알고리즘
- yarn
- ubuntu
- airflow
- 오류
- mysql
- build
- bash
- 백준
- 다이나믹
- HDFS
- java
- SPARK
- HIVE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |