전체 글(15)
-
HDFS I/O를 위한 메모리 효율화에 대한 고찰
지난번에 HDFS에서 NN(Namenode)와 DN(Datanode)간 Network I/O시에 메모리 문제에 대한 글을 작성한 바가 있다. 그래서 vm.min_free_kbytes 옵션을 수정한적이 있었는데... 서버간 메모리 부족으로 클러스터 장애가 또 발생하였다. 분명히 커널 파라미터를 수정했는데 왜 이런 문제가 발생한 것인지 궁금해서 지속적인 모니터링을 실시하였다. 그 결과, DN서버들의 free 영역 메모리가 4G정도 남아있음에도 불구하고 HDFS내 Socket Connection Timeout 에러를 발생시키는 것을 알수 있었다. 그말인 즉슨, vm.min_free_kbytes는 서버가 가져야하는 최소의 유휴 메모리로 반환하겠다는 의미이므로 서버가 뻗어서 접속되지 않는 현상은 방지해줄수 있으나..
2021.12.21 -
Tez - UI 설치 (On CDP)
금차에 CDP를 도입해서 Impala를 활용하도록 유도하고 있지만 아직까지는 Hive를 많이 활용중이라 내부적으로 모니터링시 Tez UI를 많이 활용할 일이 생겼다. 그러나 Tez View는 ambari(HDP)에서는 기본적으로 제공되었으나, CDP로 넘어가면서 없어진지라 오픈소스의 도입이 필요하게 되었다. 그래서 오늘은 Tez-UI 연동에 대해 설명해보고자 한다. 구글링을 하면 기본적인 내용은 나오는데 디테일(?)이 없어서 좀 애를 먹었다. 일단 apache tez 홈페이지에서 다운로드를 받는다. 물론 라이브러리 버젼을 잘 맞춰야한다. CDP 7.1.7 기준으로 0.9.1을 다운 받았다. https://www.apache.org/dyn/closer.lua/tez/0.9.1/ Apache Download..
2021.12.15 -
Ranger - LDAP 조회 주기 변경
우리 팀에서는 LDAP 기반의 Ranger를 통한 권한관리를 하는 중이다. 그런데 Hue에서 새롭게 생성한 그룹이나 계정정보을 Sync해봐도 제대로 나타나지 않는 문제가 있었다. 계정과 그룹을 잘못 만든것인가 한참을 고민하였으나, 구글링 결과 조회 주기가 1시간이였어서 제대로 안나온 것이였다. 계정을 급하게 생성하거나 변경해야 할일이 있는데 1시간 동안 기다리는 것은 매우 작업이 루즈해지는 것 같아 답답했던 찰나였다. 그래서 방법을 찾아보던 중 흥미로운 정보를 입수하였다. https://github.com/apache/ranger/blob/6f79dd59786804f9c1e32cf8422adc82bbfcbe01/ugsync/src/main/java/org/apache/ranger/unixusersync/..
2021.12.14 -
Spark on Livy - NoSuchObjectException (Ranger Authorization)
우리 팀은 Livy를 활용하여 Spark SQL을 이용한 배치 솔루션을 운용중이다. 이번에 플랫폼 이관을 하면서 솔루션을 테스트하는 중이였는데, 솔루션 개발팀쪽에서 에러가 발생한다고 질의가 들어왔다. Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: NoSuchObjectException(message:Table inf_tb_01 does not exist) at org.apache.hadoop.hive.ql.metadata.Hive.getPartitions(Hive.java:3796) at org.apache.hadoop.hive.ql.metadata.Hive.getPartitions(Hive.java:3819) at org.apache.spa..
2021.12.07 -
데이터 마이그레이션 - Distcp BMT
데이터 마이그레이션 전 Distcp의 성능 측정을 위해 벤치마크 테스트 결과를 기록에 남겨보고자 한다. Test 모드의 클러스터에서 수행하여서 production에서는 옵션 참조용으로만 사용하였다. 먼저 데이터의 replication부터 조정하였다. #!/bin/bash # 블록이 많아 작업이 오래걸리면 OOM이 발생하므로 클라이언트의 Heap Size를 조정해줌 export HADOOP_CLIENT_OPTS="-XX:-UseGCOverheadLimit -Xmx10240m" # -R은 하위디렉토리까지 모두, -w는 추후에 생성되는 블록에도 반영됨 hdfs dfs -R -w -setrep 2 /apps/hive/warehouse 현재 가지고 있는 block을 2로 조정하였고, hdfs fsck를 통해 re..
2021.12.06 -
HDFS Rebalancing - Cluster Scale Out
HDP에서 CDP로 클러스터 이관을 완료해서.. 짬이 생겨서 작성해본다. Rebalancing이란? 하둡을 운영하다보면 데이터노드 간의 디스크 사용률에 편차가 발생할 수 있다. 특히나 신규 데이터 노드 나 디스크 추가, 대량 데이터 삭제등으로 인하여 자주 발생한다. 또한 데이터를 새롭게 적재하거나 할 경우에 네임노드는 데이터 적재량이 낮은 데이터노드에 블럭을 추가하게 되는데, 이 때 특정 데이터노드로 쏠리는 (Skew) 현상이 발생하기도 한다. 이렇듯 특정 데이터 노드에 I/O가 몰리면 성능이 저하되고, 디스크 사용률이 임계치에 육박하면 맵리듀스, Hive등이 정상적으로 수행되지 않는다. 이에 데이터노드의 디스크 사용률을 평이하게 맞춰주는 작업을 rebalancing이라고 한다. CDP 클러스터에 데이터..
2021.12.06