본문 바로가기

HDFS39

[hadoop] 세컨더리네임노드(secondary namenode) 하둡 HDFS는 동작하면서 HDFS에 파일을 생성, 삭제 하는 등의 작업에 대한 트랜잭션 로그를 기록합니다. 해당 로그는 Edits_XXX 이름으로 네임노드의 dfs.namenode.edits.dir 에 설정된 위치에 저장됩니다. 이 트랜잭션 로그는 트랜잭션이 많아질 수록 빠르게 해당 위치에 쌓이게 됩니다. 로그는 세컨더리네임노드를 이용하여 정리할 수 있습니다. 세컨더리네임노드는 다음과 같이 실행합니다. > hdfs secondarynamenode 세컨더리 네임노드는 설정값에 따라 기본 한시간에 한번씩 Edits 로그를 확인하면서 설정값이상의 파일이나, 트랜잭션 횟수를 넘어서면 Edits 파일을 정리하여 사이즈를 줄여줍니다. dfs.namenode.checkpoint.period: 체크포인트 확인 시간 .. 2018. 9. 14.
[하둡]HDFS의 헬스 체크 및 커럽트 블럭 삭제하기 HDFS의 블록에 오류가 발생해서 커럽트 블록이 발생하면 이 부분을 hdfs 쉘을 이용하여 확인할 수 있다. hdfs fsck /hdfs fsck /user/- fsck 다음에 경로를 꼭 입력해야 한다. hdfs fsck -list-corruptfileblocks- 커럽트 블록 목록 확인 hdfs fsck -delete- 커럽트 블록을 삭제한다. hdfs fsck -move- 커럽트 블록을 lost+found 로 이동한다. HDFS의 상태가 이상해서 fsck 명령으로 확인하여 아래와 같이 커럽트 블록을 확인하면, -list-corruptfileblocks 명령으로 블록을 확인하고, -delete 명령으로 삭제후, 새로 배포하면 된다. - 시스템 상태가 정상The filesystem under path '.. 2017. 9. 18.
[hadoop] HDFS 관련 주요 면접 질문 -HDFS의 주요 특징은?블록단위 파일 보관파일을 사용자가 지정한 단위의 블록으로 분할 하여 저장분할하여 저장하기 때문에 큰사이즈의 데이터도 저장이 가능700G 디스크가 2개 있을때 1T파일을 저장하려고 한다면 1T 디스크를 사지 않고, 파일을 분할하여 저장 가능 분산 저장 파일 시스템클러스터의 노드에 분산하여 저장이 가능레플리케이션하나의 블록을 기본 복제 단위 만큼 복사하여 저장범용장비 사용특정 장비가 아니라 일반적인 장비에서 사용이 가능 - HDFS의 구조네임노드디렉토리, 파일 정보 관리블록과 디렉토리간 매핑 정보 관리파일 시스템의 관리를 위애 fsimage와 edits를 이용데이타노드파일을 블록단위로 나누어서 저장체크포인트 노드, 세컨더리 네임노드fsimage와 edits를 주기적으로 체크하여 체크.. 2017. 9. 11.
[hdfs] 하둡 hdfs의 휴지통 설정하기 hdfs에는 사용자의 실수로 인한 파일의 삭제를 방지하기 위해서 휴지통 기능이 존재한다. fs.trash.interval- 0 으로 설정하면 휴지통 기능을 사용하지 않음- 설정한 분(minute) 간격으로 체크해서 시간이 지난 파일 삭제 fs.trash.checkpoint.interval- 설정한 시간이 지난 파일 삭제 hadoop fs -expunge 명령으로 휴지통을 비움hadoop fs -rm -skipTrash /data 명령으로 휴지통을 이용하지 않고 파일을 바로 삭제 https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#File_Deletes_and_Undeleteshttps://hadoop... 2017. 7. 24.
[hadoop][fsck] HDFS의 상태를 점검 할 수 있는 명령어 HDFS의 fsck 명령- HDFS 상의 다양한 불일치(블록 누락, 복제 되지 않은 블록)를 확인- 오류를 발견하고 수정하지는 않음(NameNode가 복구가능한 오류는 자동으로 수정)- 열린 파일은 무시함 > hadoop fsck /Status: HEALTHY Total size: 3984631262 B # 현재 사용중인 byte (hadoop fs -du -s / 명령어와 동일한 값) Total dirs: 678 Total files: 3453 Total symlinks: 0 Total blocks (validated): 3450 (avg. block size 1154965 B) # 최소 개수로 복제된 블록 Minimally replicated blocks: 3450 (100.0 %) # 기본 설정값 .. 2017. 4. 10.
[oozie] FS 액션을 이용하여 작업 완료용 0바이트 파일 만들기 우지를 이용하여 하둡, 하이브 액션을 처리할때 HDFS나 S3에 작업이 처리 되었음을 알리기 위하여 0byte의 파일을 생성해야 할 때가 있다. 이럴때 hadoop의 touchz 명령을 이용하면 0byte의 파일을 생성할 수 있다. * 이는 리눅스의 touch 명령과 동일하다. 우지 워크플로우의 fs 액션은 이작업을 기본적으로 제공하기 때문에 따로 쉘커맨드나 파이썬 액션을 만들지 않아도 처리가 가능하다. fs 액션은 다음의 기본 명령을 제공한다. - move , delete , mkdir , chmod , touchz, chgrp [fs 액션 문법] ... ... ... ... ... ... ... [예제1] ... ... [예제2] Map/Reduce failed, error message[${wf:e.. 2017. 1. 25.
[hdfs] Non DFS used 용량 hdfs dfsadmin -report 명령을 이용하여 hdfs의 사용량을 확인할 수 있다. 이때 출력되는 정보를 통하여 디스크이 사용량 확인이 가능하다. 이중에서 Non DFS used 항목의 정보가 궁금하여 다음과 같이 확인해 본다. Configured Capacity = Total Disk Space - Reserved Space.사용 가능 용량 = 디스크의 전체 용량 - 예약 용량 디스크의 전체 용량: hdfs-site.xml에서 지정한 디스크의 총용량예약용량: hfds-site.xml에서 dfs.datanode.du.reserved 로 저징한 용량 Non DFS used = Configured Capacity - DFS Remaining - DFS Used 100G 디스크에서 예약용량을 30G로.. 2016. 8. 25.
[hadoop] HDFS의 유용한 명령어 [파일 정보 확인] ls- 지정한 디렉토르의 lsr- ls 는 현재 디렉토리만 출력하는 반면 lsr 명령어는 현재 디렉토리의 하위 디렉토리 정보까지 출력한다. count- 파일 사이즈, 디렉토리 용량, 폴더 수 등을 확인합니다. [파일 용량 확인]du- 지정한 디렉토리나 파일의 사용량을 확인하는 명령어로, 바이트 단위로 결과를 출력합니다. dus- du 명령어는 디렉토리와 파일별로 용량을 출력하지만, dus는 전체 합계 용량만 출력합니다. [파일 내용보기]cat- 지정한 파일의 내용을 화면에 출력합니다. text- cat 명령어는 텍스트 파일만 출력할 수 있습니다. text 명령어는 압축된 파일도 확인이 가능합니다. - 확장자에 따라 압축방법을 선택하여 보여주기 때문에 확장자가 다르면 올바르게 출력이 되.. 2016. 7. 27.
[팁] 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.