본문 바로가기
반응형

BigData 기술37

[Hive] managed table , external table 차이 managed table데이터가 hive.metastore.warehouse.dir 에 저장된다.위의 경로는 CREATE TABLE시 LOCATION 구문으로 변경할 수도 있다.테이블을 DROP하면 데이터도 사라진다.테이블의 라이프사이클을 관리하거나 임시테이블을 만들 때 사용한다.transaction, view 등이 가능하다. (external은 불가) external table원본이 저장된 데이터에 접근할 수 있다. (ex. S3, 다른 HDFS 등) hive입장에서는 메타데이터만 관리한다고 여겨진다.테이블을 DROP해도 데이터는 남아있다.파일이 이미 있거나 원격 위치에 있는 경우 사용한다. -> 1차테이블로 많이 사용하는 듯 -> msck repair 필요 (metadata 갱신) 참고Managed .. 2021. 3. 9.
[Hive] export, import Export hive table의 메타데이터와 데이터를 추출하는 명령어이다. hdfs 경로에 저장이 된다. export table import_tbl_2 to '/user/public/sunnytest/exporttest'; Import export한 테이블을 import 명령어로 가져올 수 있다. 대상 테이블이 이미 있고 파티션이 없는 경우, 데이터가 비워져 있어야 한다. 대상 테이블이 이미 있고 파티션이 있는 경우, 가져올 파티션에 데이터가 비워져 있어야 한다. import table imported_tbl from '/user/public/sunnytest/exporttest'; export한 디렉토리와 파일들은 import를 수행할 클러스터로 복사해야 할 것이다. distcp 같은 툴로 복사하거나.. 2021. 3. 9.
[spark] spark에서 phoenix 테이블 읽고쓰기 (scala) spark에서 zookeeper를 통해 phoenix 테이블에 접근하는 방법을 정리한다. 1. Spark에서 Phoenix 테이블 읽기 import org.apache.spark.sql.SQLContext import org.apache.spark.sql.SaveMode val sqlContext = new SQLContext(sc) val df = sqlContext.load("org.apache.phoenix.spark",Map("table" -> "SUNNY_TEST", "zkUrl" -> "10.220.193.119:2181")) df.show() // orc로 지정안하면 디폴트가 파케이파일포맷. // 그럼 hive 파일 포맷 아니라면서 에러 뜸 df.write.mode(SaveMode.Overw.. 2021. 1. 14.
DataNode failed volumes 원인 및 해결법 hadoop 2.7.4 테스트 클러스터 운영 중에 2대의 데이터노드가 shutdown 됐던 적이 있었습니다. 디스크 고장으로 인해 데이터노드 volume에 문제가 생긴 것이 원인이었습니다. 원인 파악 1. 데이터노드 로그(/var/log/hadoop-hdfs/hadoop-hdfs-datanode-mnode4.dev.com.log)를 확인해보니 데이터노드의 volume(/data1/hdfs/data)에 문제가 생겼다네요. (참고) 데이터노드는 volume(로컬디스크)에 block 데이터를 저장합니다. 2018-05-29 10:53:44,775 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode:mnode4.dev.com:50010 :DataXceiver erro.. 2021. 1. 7.
[HDFS] 네임노드 구동과정 (Namenode Startup Process) 네임노드가 시작되는 과정을 정리하면서 네임노드의 동작들을 더 제대로 이해해보고자 합니다 :) 1. fsimage를 디스크에서 읽어 메모리에 로딩한다. fsimage는 dfs.namenode.name.dir 경로에 저장되어 있다. 이 파일을 읽어 메모리에 로딩한다. 2. edits log 중에 반영되지 않은 것을 찾아 반영한다. 아직 체크포인팅 안 된 edits log를 journal노드에서 읽어온다. 체크포인팅이 안 된 edits log에는 파일이름에 inprogress가 붙는다. edits log를 fsimage에 반영한다. (체크포인팅) 3. 네임노드의 포트(8020, 50070)가 열린다. 그럼 데이터노드와 네임노드가 통신하며 데이터노드가 등록된다. 데이터노드가 네임노드에게 블록리포트를 보내준다. .. 2021. 1. 5.
[HDFS] Block Pool 개념 정리 HDFS에 데이터가 어떻게 저장되는지 이해하기 위해 Block Pool을 알아보겠습니다. Block Pool은 네임스페이스에 할당된 공간이라고 보면 된다. Block Pool에 블록 관리에 필요한 메타데이터(블록 위치 정보 등)를 저장한다. Block Pool은 메모리에 저장된다. Block Pool ID는 BP-- 형식으로 만들어진다. 네임노드 웹 UI(http://:50070)에서 Block Pool ID를 확인할 수 있다. HDFS Federation이 구성된 경우가 아니라면, 네임스페이스가 여러개 구성된 것이 아니기 때문에 Block Pool도 1개일 것이다. 데이터노드는 모든 Block Pool에 있는 블록들을 volume(로컬디스크)에 저장한다. 예를 들어, 데이터노드의 /data1/hdfs/.. 2021. 1. 4.
반응형