본문 바로가기

하둡12

[빅데이터][스크랩] 네이버의 하둡 클러스터 운영 주의 사항 네이버에서 발표한 자료를 통해 하둡 클러스터를 운영하면서 주의해야 할 사항에 대해서 알아보겠습니다. 네임노드 네임노드는 힙메모리에 HDFS에 존재하는 모든 파일의 메타정보를 저장하고 있습니다. 네임노드 JVM의 힙메모리 사이즈(만 블록당 1G의 메모리가 사용)에 따라 전체 파일, 블록의 개수가 제한됩니다. 파일, 블록이 많이 생성되어 메모리의 한계치에 도달하면 JVM의 힙메모리를 늘려야 합니다. 하지만 메모리 설정을 변경하려면 네임노드를 재기동해야 하고, 네임노드는 재기동 할 때 블록 정보를 재구축하기 위해 fsimage, edits 파일을 읽어서 블록정보를 재구축합니다. 또한 데이터노드로 부터 블록 정보를 받아서 결과를 연동합니다. 이 과정에서 파일 개수가 많을수록 재기동에 걸리는 시간이 길어지고, 이.. 2020. 3. 24.
[빅데이터/강좌] 실무자가 알아야 할 하둡 #1.개요 하둡 자바로 구현된 대규모 분산처리를 위한 오픈소스 프레임워크야후의 더그 커팅이 '넛치'라는 검색엔진을 개발하는 과정에서 개발 비정형 데이터를 RDB에서 처리하기에는 사이즈가 커서 새로운 기술이 필요하게 됨 구글에서 발표한 GFS와 MapReduce 관련 논문을 참고하여 개발 하둡의 구성 분산저장(HDFS:Hadoop Distributed File System), 병렬처리(MapReduce) 프레임워크로 구성 분산저장 여러개의 서버를 하나의 서버처럼 묶어서 데이터를 저장 병렬처리 분산되어 저장된 데이터를 데이터가 존재하는 위치에서 동시에 처리 하둡의 장단점 장점 오픈소스로 라이선스에 대한 비용 부담이 적음 시스템을 중단하지 않고, 장비의 추가가 용이(Scale Out) 일부 장비에 장애가 발생하더라도 전.. 2018. 5. 14.
[면접][Hadoop] 맵리듀스(MapReduce) 관련 면접 주요 질문 -맵리듀스란?하둡 클러스터를 이용하여 대용량데이터를 병렬로 처리하는 프레임워크맵과 리듀스 2단계로 데이터를 분석 -Context Object의 사용법은?하둡의 매퍼가 다른 하둡 시스템과 통신하기 위해서 사용 -리듀서의 코어 메소드는?setup()입력데이터 사이즈, 힙 사이즈, distribute cache 설정 등을 진행reduce()입력된 데이터를 이용하여 리듀스 작업 진행cleanup()리듀스의 마지막에 임시 파일을 삭제하기 위해 한번만 호출 -파티셔닝, 셔플, 소트 페이즈에 대해서 설명하시오.셔플맵 태스크의 처리 결과로 임시 저장된 중간 파일을 리듀서로 넘기는 작업을 셔플소트맵 단계 결과를 리듀서로 넘기기 전에 키를 기준으로 자동으로 정렬을 진행 하는 것파티셔닝맵의 중간값을 리듀서의 입력으로 넘기기.. 2017. 9. 25.
[hadoop] 맵리듀스의 맵퍼 리듀서 개수 설정하기 하둡의 매퍼 리듀서 개수는 입력사이즈에 의해서 설정하는 방법과 사용자가 개수를 설정하는 방법이있다. 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개.. 2017. 9. 21.
[hadoop] 빅데이터 면접 질문 빅데이터 관련해서 정보를 찾던 중에 빅데이터 관련 면접에서 알아두면 좋을 내용이 있어서 스크랩해 보았다. 공부해 두면 좋은 내용들이어서 정리 해 보았다. 1. 하둡과 전통적인 RDBMS의 차이점은? 데이터 타입: 하둡은 정형, 반정형, 비정형 데이터: RDBMS는 정형 데이터 스키마: 하둡 - Schema on Read: RDBMS - Schema on Write: 데이터를 읽을 때 스키마를 적용하느냐, 데이터를 적재할 때 스키마를 적용하느냐: https://goo.gl/images/dQiQCJ 좋은 사용법: 하둡은 대용량 데이터 처리: RDBMS는 OLTP 데이터 처리나 복잡한 ACID 트랜잭션에 적용 속도: 하둡은 쓸 때 빠르고 : RDBMS는 읽을 때 빠르다. 2. 빅데이터에서 4V는 무엇을 말하나.. 2017. 9. 10.
[hive] java.net.URISyntaxException: Relative path in absolute URI: file:./tmp/yarn 오류 처리 하이브 처리중 다음과 같은 오류가 발생하는 경우는 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.. 2017. 1. 17.
[oozie] 우지에서 쉴에서 실행한 값을 다음 액션의 파라미터로 전달하기 우지 workflow.xml 에서 현재 액션의 스탠다드 아웃풋(출력)을 다음 액션의 파라미터로 이용이 가능하다. 쉘 액션에 를 입력하고다음 액션의 파라미터에서 ${wf:actionData('shellAction')['dateVariable']}와 같이 이용하면 된다. 쉘 액션의 이름과 출력 파라미터를 잘 조정하면 된다. 쉘 액션은 다음과 같이 출력하면 된다. echo "dateVariable=${dateValue}" http://stackoverflow.com/questions/30873891/passing-parameters-from-one-action-to-another-in-oozie 2016. 7. 26.
[팁] hdfs 에 파일 업로드시 권한문제가 발생할 때 해결방법 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.. 2016. 6. 16.
[팁] JVM을 재사용하여 성능을 향상 시키기 맵, 리듀스 태스크는 처리될 때 JVM를 새로 생성한다. 따라서 짧은 작업이 여러개 생성될 경우 JVM을 신규로 생성하는 오버헤드가 클 수도 있다. 이때 JVM을 재사용하여 작업을 처리하는 시간은 줄일 수 있다. 아래의 설정은 JVM에서 처리할 수 있는 작업의 개수를 설정한다. 기본 설정은 1이지만, -1로 설정하면 제한없이 사용할 수 있다. hadoop v1mapred.job.reuse.jvm.num.tasks=-1hadoop v2 mapreduce.job.jvm.numtasks=-1 http://www.nexr.co.kr/upload/mapli_deux.pdfhttps://hadooptips.wordpress.com/2013/03/19/improving-performance-with-jvm-reuse.. 2016. 2. 12.
[hadoop] 하둡 명령어, 자주 사용하는 커맨드(hadoop command) 하둡에서 자주 사용하는 명령어는 다음과 같다. * 폴더의 용량을 확인할 때 count 를 사용* 파일의 내용을 확인할 때는 cat 보다는 text를 사용하면 더 좋다. 파일 타입을 알아서 판단하기 때문 hadoop fs -cat [경로] - 경로의 파일을 읽어서 보여줌 - 리눅스 cat 명령과 동리함 hadoop fs -count [경로] - 경로상의 폴더, 파일, 파일사이즈를 보여줌 hadoop fs -cp [소스 경로] [복사 경로] - hdfs 상에서 파일 복사 hadoop fs -df /user/hadoop - 디스크 공간 확인 hadoop fs -du /user/hadoop - 파일별 사이즈 확인 hadoop fs -dus /user/hadoop - 폴더의 사이즈 확인 hadoop fs -get.. 2016. 1. 25.
[Hive] 하이브의 정렬, 집계, 유저 함수, 조인, 서브쿼리, 뷰의 정의 정렬과 집계 하이브의 데이터 정렬은 order by 절로 처리 가능 - 하지만 order by 처리하기 위해서는 모든 처리의 결과를 집계해야 하기 때문에 리듀서의 개수가 1개가 되어야 한다. - 마지막 결과파일의 개수가 1개가 된다. 전체적인 정렬의 결과가 필요 없다면, sort by를 사용하면 된다. - sort by는 리듀서당 정렬된 파일을 생성 어떤 경우에는 특정 로우가 특정 리듀서로 가도록 설계하여 집계연산을 사용하는 것이 좋다. - distributed by가 이 역할을 한다. sort by, distributed by에 사용되는 칼럼이 같다면 둘 다를 동시에 지정하기 위해 약칭으로 cluster by를 사용할 수 있다. select year, temperature from records2 di.. 2015. 9. 14.
[개념] 하둡 0.x, 1.x, 2.x 의 차이 하둡의 발전은 위와 같다. 녹색 네모 상자는 아파치 하둡의 정식 릴리스 버전이다. 검은색 타원은 아파치 하둡의 정식 릴리스 버전은 아니지만 타볼 형태로 확인할 수 있는 버전이다. 빨간색 타원은 해당 버전에 기반하여 출시된 상업용 버전이다. 즉 0.x 버전은 개발용 버전으로 추가적인 작업이 계속 진행되어 가는 버전이고 1.x 버전은 0.18 -> 0.19 -> 0.20 -> 0.20.2 -> 0.20.205 -> 1.0 순서로 발전되어 현재 안정화된 버전이다. 2.x 버전은 0.23 버전에 기반하여 1.x 에 비하여 HA, YARN 아키텍처가 추가된 버전이다. 2.x 는 다수의 네임노드를 가질 수 있고, YARN 이라는 새로운 MapReduce 아키텍처가 도입된 버전이다. https://blogs.apac.. 2015. 8. 5.