본문 바로가기

Study/Bigdata

(66)
MySQl Memory DB Table is Full 환경은 Cetnos 64bit 30GBRAM, MySQL 5.7 버전을 사용하고 있습니다. 많은 텍스트들을 보면 Hadoop MapReduce에서 반복적인 작업은 지양하라고 되어있는데, 현재, 싱글 머신에서 돌리기에는 양이 너무 많아서(쓰레드를 붙이더라도)... MapReduce에 약간의 꼼수를 써서 포팅해서 사용하고 있습니다. 현재 10개의 Hadoop Node에서 총 40개의 Task(MapReduce) 걸었습니다. Map 작업 한번에 총 약 12개 정도의 쿼리를 날립니다. 사실 이 쿼리가 단일 머신에서 할때는 0.55ms 정도 나오는데 10Node로 동시에 Query를 날리니 9s 넘게 걸리더군요.. 물론 제가 쿼리를 엉망으로 만든것은 있습니다. 이러한 문제점을 해결하기 위해, 쿼리에 사용되는 Ta..
Sqoop-export : from hive to mysql 만약 Hive에서 test라는 테이블을 mysql로 옮길때는 1. Hive의 Test와 동일한 Test테이블을 Mysql에 생성2. sqoop 을 이용 sqoop export --connect jdbc:mysql://192.168.1.1/database --username user --password password --table test --export-dir /apps/hive/warehouse/test --input-fields-terminated-by '\001' --lines-terminated-by '\n'
Hive를 이용해서 Rank 구하기 일단 현재 상황은 MySQL 안에 366996 로우가 들어있는 상황이고, 여기안에 데이터가 있는 상황입니다여기에 데이터가 있는데, 랭킹을 매겨야 하는 상황입니다. select B,T,(select count(*)+1 from 9_Spending_blk where T>t.T) as rank from a_blk as t order by rank asc; SELECT a.B, a.T, count(b.T)+1 as rankFROM 9 a left join 9 b on a.T>b.T and a.B=b.Bgroup by a.B, a.T 통해서 RANK를 구하려고 했는데, 생각보다 느리게 되더군요.... MySQL로 구하는거 포기하고HIVE로 옮긴다음 해봤더니 금방 구할수 있었습니다. 절차는 다음과 같습니다. sqo..
MapReduce :: Type mismatch in value from map 주말에 갑자기 텍스트 데이터를 분석할 일이 있어서,, 분석이라기 보다는. 문제는 이 파일이 파일한개가 40~50GB 정도 되는것 같습니다. 보통은 Toad로 MySQL로 밀어 넣어서,, 확인 해보려고 했더니, Toad가 OutofMemory 오류가 나더군요.. 저 오류는 자바에서 본걸로 기억하는데 Toad가 자바로 만들어졌나.. 결국에는 포기하고 HDFS에서 MapReduce로 프로그램을 만들었습니다. Type mismatch in value from map Map작업을 돌리다보니, 이런 오류가 나더군요. 이오류는 Map,Reduce의 형태가 드라이버 클래스와 안맞을때 나는 오류 입니다. 오랜만에,, 맵리듀스 프로그램을 만들어봣더니,, 머리가 아프네요 http://stackoverflow.com/ques..
Sqoop 1.4.6 설치, 사용 예제(Migrating data using sqoop from Mysql to HBase) Sqoop2 가 있지만, 1이 익숙한 관계로 다음은 MySQL 에서 Hbase로 Migration 하는 예제 입니다. wget http://mirror.apache-kr.org/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gztar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gzmv sqoop-1.4.6.bin__hadoop-2.0.4-alpha /usr/local/sqoop vim /etc/profile export HBASE_HOME=/usr/local/hbase export SQOOP_HOME=/usr/local/sqoop export PATH=$PATH:$SQOOP_HOME/bin:$HBASE_HOME/bin:$..
아파치 피닉스(Apache Phoenix) 설치 1. 하둡 , Hbase는 기본적으로 설치되어 있다고 가정, https://phoenix.apache.org/ 에서 파일 다운로드 2. 압축해제3. Hbase 정지4. phoenix-버전-HBase-1.1-server.jar 을 HBASE lib 폴더에 저장5. phoenix-core-버전-HBase-1.1.jar 을 HBASE lib 폴더에 저장6. Hbase 재시작 확인절차 1. ./sqlline.py 172.168.0.47:2181:/hbase - System Table은 피닉스가 처음 실행할때 자동으로 생성 2. Hbase shell - Hbase Shell에도 똑같이 시스템 폴더들이 생긴것을 알수 있음
Hbase + Hive 연동 HDP(Hortonworks data Platform)을 이용할때는 external Table을 선언하면 바로 동작하던것 같은데, 일반 Apache Hadoop에서는 약간 다르기 보다는 귀찮은게 많은것 같습니다. Hadoop 2.7.1, Hbase 1.1.1 , Hive 1.4.0을 기준으로 정리하면(각 컴포넌트들이 이미 설치되어 있다고 전제) 1. Hive로 필요한 Hbase 라이브러리 복사cp /HBASE_HOME/lib/hbase-client-x.x.x.jar /HIVE_HOME/lib/cp /HBASE_HOME/lib/hive-common-x.x.x.jar /HIVE_HOME/lib 2.Hive Shellcreate external table mytable(key string,c1 string,c..
Aapche hive select count(*) 과 같은 작업을 할때 MapReduce 작업이 무한이 진행될때 2015/08/05 - [Study/------Hadoop] - [Apache:Hbase] 에러 해결하는 방법 2015-08-05 13:49:25,287 INFO [root:16020.activeMasterManager] master.ServerManager: Waiting for region servers count to settle; currently checked in 0, slept for 9017 ms, expecting minimum of 1, maximu m of 21.. 연장선의 글입니다. 컴파일을 해서 사용중이라 그런지 포트가 엉망인지 모르겠습니다.Hive에서 Hbase 사용을 위해 External Table 을 만들고 select count(*)와 같이 , MapReude작업을 하려고 ..