다른 부서로부터 데이터를 전달받았는데 이게 ORC포멧으로 되어있는 경우가 종종 발생하고 있습니다. 데이터 포멧도 함께 전달받으면 문제가 없으나 전달받지 못했거나, 포멧이 현행화가 되어 있지 않다면 쿼리 구동 시 자료형 컨버팅을 할 수 없다는 식의 에러가 발생하게 됩니다. ORC파일에 대한 자세한 정보는 http://orc.apache.org/docs/ 에서 확인 가능합니다. 또, Map/Reduce 상에서 orc를 읽어서 처리하는 방법은 http://airguy76.blog.me/220886477955 에서 정리한 적이 있습니다. 이러한 방법을 이용하여 이번엔 스키마를 읽어들여 출력하는 간단한 툴을 만들어 보겠습니다. HDFS상의 파일을 접근하기 위해선 configuration 생성, 생성.......
2016-12-27 13:32:31 · 산소소년다른 부서로부터 데이터를 전달받았는데 이게 ORC포멧으로 되어있는 경우가 종종 발생하고 있습니다. 데이터 포멧도 함께 전달받으면 문제가 없으나 전달받지 못했거나, 포멧이 현행화가 되어 있지 않다면 쿼리 구동 시 자료형 컨버팅을 할 수 없다는 식의 에러가 발생하게 됩니다. ORC파일에 대한 자세한 정보는 http://orc.apache.org/docs/ 에서 확인 가능합니다. 또, Map/Reduce 상에서 orc를 읽어서 처리하는 방법은 http://airguy76.blog.me/220886477955 에서 정리한 적이 있습니다. 이러한 방법을 이용하여 이번엔 스키마를 읽어들여 출력하는 간단한 툴을 만들어 보겠습니다. HDFS상의 파일을 접근하기 위해선 configuration 생성, 생성.......
2016-12-27 13:32:31 · 산소소년다른 부서로부터 데이터를 전달받았는데 이게 ORC포멧으로 되어있는 경우가 종종 발생하고 있습니다. 데이터 포멧도 함께 전달받으면 문제가 없으나 전달받지 못했거나, 포멧이 현행화가 되어 있지 않다면 쿼리 구동 시 자료형 컨버팅을 할 수 없다는 식의 에러가 발생하게 됩니다. ORC파일에 대한 자세한 정보는 http://orc.apache.org/docs/ 에서 확인 가능합니다. 또, Map/Reduce 상에서 orc를 읽어서 처리하는 방법은 http://airguy76.blog.me/220886477955 에서 정리한 적이 있습니다. 이러한 방법을 이용하여 이번엔 스키마를 읽어들여 출력하는 간단한 툴을 만들어 보겠습니다. HDFS상의 파일을 접근하기 위해선 configuration 생성, 생성.......
2016-12-27 04:32:31 · 산소소년다른 부서로부터 데이터를 전달받았는데 이게 ORC포멧으로 되어있는 경우가 종종 발생하고 있습니다. 데이터 포멧도 함께 전달받으면 문제가 없으나 전달받지 못했거나, 포멧이 현행화가 되어 있지 않다면 쿼리 구동 시 자료형 컨버팅을 할 수 없다는 식의 에러가 발생하게 됩니다. ORC파일에 대한 자세한 정보는 http://orc.apache.org/docs/ 에서 확인 가능합니다. 또, Map/Reduce 상에서 orc를 읽어서 처리하는 방법은 http://airguy76.blog.me/220886477955 에서 정리한 적이 있습니다. 이러한 방법을 이용하여 이번엔 스키마를 읽어들여 출력하는 간단한 툴을 만들어 보겠습니다. HDFS상의 파일을 접근하기 위해선 configuration 생성, 생성.......
2016-12-27 04:32:31 · 산소소년hive에서 생성한 orc데이터를 MapReduce에서 읽거야 하거나 혹은 별도의 시스템에서 읽어서 처리해야하는 경우가 종종 있습니다. 대게 이런 경우 별도로 hive내에서 plain text로 변환한 후 이후의 과정을 처리를 하게됩니다. 하지만 요즘 시대가 그런 것인지 제가 담당하는 일만 그런 것인지 모르겠지만, 요런 일들을 할 때는 꼬옥~ 수십, 수백기가를 넘어 테라단위의 데이터가 생성되고 있고 이것을 변환하여 전송하는 것도 곤욕입니다. 그래서 HDFS에 있는 ORC파일을 HDFS API를 이용하여 직접 열어 읽을 수 있는 리더를 생성하는 방법과 이를 통해 Map/Reduce에서 사용할 수 있는 RecordReader 및 InputFormat을 만들어 보겠습니다. 우선 hiv.......
2016-12-15 10:37:13 · 산소소년hive에서 생성한 orc데이터를 MapReduce에서 읽거야 하거나 혹은 별도의 시스템에서 읽어서 처리해야하는 경우가 종종 있습니다. 대게 이런 경우 별도로 hive내에서 plain text로 변환한 후 이후의 과정을 처리를 하게됩니다. 하지만 요즘 시대가 그런 것인지 제가 담당하는 일만 그런 것인지 모르겠지만, 요런 일들을 할 때는 꼬옥~ 수십, 수백기가를 넘어 테라단위의 데이터가 생성되고 있고 이것을 변환하여 전송하는 것도 곤욕입니다. 그래서 HDFS에 있는 ORC파일을 HDFS API를 이용하여 직접 열어 읽을 수 있는 리더를 생성하는 방법과 이를 통해 Map/Reduce에서 사용할 수 있는 RecordReader 및 InputFormat을 만들어 보겠습니다. 우선 hiv.......
2016-12-15 10:37:13 · 산소소년hive에서 생성한 orc데이터를 MapReduce에서 읽거야 하거나 혹은 별도의 시스템에서 읽어서 처리해야하는 경우가 종종 있습니다. 대게 이런 경우 별도로 hive내에서 plain text로 변환한 후 이후의 과정을 처리를 하게됩니다. 하지만 요즘 시대가 그런 것인지 제가 담당하는 일만 그런 것인지 모르겠지만, 요런 일들을 할 때는 꼬옥~ 수십, 수백기가를 넘어 테라단위의 데이터가 생성되고 있고 이것을 변환하여 전송하는 것도 곤욕입니다. 그래서 HDFS에 있는 ORC파일을 HDFS API를 이용하여 직접 열어 읽을 수 있는 리더를 생성하는 방법과 이를 통해 Map/Reduce에서 사용할 수 있는 RecordReader 및 InputFormat을 만들어 보겠습니다. 우선 hiv.......
2016-12-15 01:37:13 · 산소소년hive에서 생성한 orc데이터를 MapReduce에서 읽거야 하거나 혹은 별도의 시스템에서 읽어서 처리해야하는 경우가 종종 있습니다. 대게 이런 경우 별도로 hive내에서 plain text로 변환한 후 이후의 과정을 처리를 하게됩니다. 하지만 요즘 시대가 그런 것인지 제가 담당하는 일만 그런 것인지 모르겠지만, 요런 일들을 할 때는 꼬옥~ 수십, 수백기가를 넘어 테라단위의 데이터가 생성되고 있고 이것을 변환하여 전송하는 것도 곤욕입니다. 그래서 HDFS에 있는 ORC파일을 HDFS API를 이용하여 직접 열어 읽을 수 있는 리더를 생성하는 방법과 이를 통해 Map/Reduce에서 사용할 수 있는 RecordReader 및 InputFormat을 만들어 보겠습니다. 우선 hiv.......
2016-12-15 01:37:13 · 산소소년MapReduce line number를 이용한 mapping join
HDFS 상에 있는 데이터의 특정 필드를 다른 데이터의 일부분으로 치환할 때 대부분 hive(SQL) join을 이용합니다. 하지만 100개가 넘은 필드 중에 치환해야 하는 필드가 50개 라면? 아오씨~~~~ 1234567select a.f1, b.f1, b.f2, b.f3, ... b.f50, a.f3 ... from table_a a, table_b bwhere a.dt='20160606' and a.svc_id = b.svc_idcs 쿼리를 작성하는데 손이 많이 가는 것도 문제지만 MR로 컨버팅 되는 과정에서 굉장히 많은 stage가 만들어지게 됩니다. 이런 부담을 줄이기 위해서 간단한 MR작업으로 동시에 여러필드를 치환하는 방법을 소개하려 합니다. 2개의 STAGE로 나눠지며 순서는 다음과 같습니다. STAGE1에서는 1. 맵핑테이블과 치환이.......
2016-06-09 18:58:35 · 산소소년MapReduce line number를 이용한 mapping join
HDFS 상에 있는 데이터의 특정 필드를 다른 데이터의 일부분으로 치환할 때 대부분 hive(SQL) join을 이용합니다. 하지만 100개가 넘은 필드 중에 치환해야 하는 필드가 50개 라면? 아오씨~~~~ 1234567select a.f1, b.f1, b.f2, b.f3, ... b.f50, a.f3 ... from table_a a, table_b bwhere a.dt='20160606' and a.svc_id = b.svc_idcs 쿼리를 작성하는데 손이 많이 가는 것도 문제지만 MR로 컨버팅 되는 과정에서 굉장히 많은 stage가 만들어지게 됩니다. 이런 부담을 줄이기 위해서 간단한 MR작업으로 동시에 여러필드를 치환하는 방법을 소개하려 합니다. 2개의 STAGE로 나눠지며 순서는 다음과 같습니다. STAGE1에서는 1. 맵핑테이블과 치환이.......
2016-06-09 18:58:35 · 산소소년MapReduce line number를 이용한 mapping join
HDFS 상에 있는 데이터의 특정 필드를 다른 데이터의 일부분으로 치환할 때 대부분 hive(SQL) join을 이용합니다. 하지만 100개가 넘은 필드 중에 치환해야 하는 필드가 50개 라면? 아오씨~~~~ 1234567select a.f1, b.f1, b.f2, b.f3, ... b.f50, a.f3 ... from table_a a, table_b bwhere a.dt='20160606' and a.svc_id = b.svc_idcs 쿼리를 작성하는데 손이 많이 가는 것도 문제지만 MR로 컨버팅 되는 과정에서 굉장히 많은 stage가 만들어지게 됩니다. 이런 부담을 줄이기 위해서 간단한 MR작업으로 동시에 여러필드를 치환하는 방법을 소개하려 합니다. 2개의 STAGE로 나눠지며 순서는 다음과 같습니다. STAGE1에서는 1. 맵핑테이블과 치환이.......
2016-06-09 09:58:35 · 산소소년MapReduce line number를 이용한 mapping join
HDFS 상에 있는 데이터의 특정 필드를 다른 데이터의 일부분으로 치환할 때 대부분 hive(SQL) join을 이용합니다. 하지만 100개가 넘은 필드 중에 치환해야 하는 필드가 50개 라면? 아오씨~~~~ 1234567select a.f1, b.f1, b.f2, b.f3, ... b.f50, a.f3 ... from table_a a, table_b bwhere a.dt='20160606' and a.svc_id = b.svc_idcs 쿼리를 작성하는데 손이 많이 가는 것도 문제지만 MR로 컨버팅 되는 과정에서 굉장히 많은 stage가 만들어지게 됩니다. 이런 부담을 줄이기 위해서 간단한 MR작업으로 동시에 여러필드를 치환하는 방법을 소개하려 합니다. 2개의 STAGE로 나눠지며 순서는 다음과 같습니다. STAGE1에서는 1. 맵핑테이블과 치환이.......
2016-06-09 09:58:35 · 산소소년정수 비교 -eq같음 if [ "$a" -eq "$b" ] -ne같지 않음 if [ "$a" -ne "$b" ] -gt더 큼 if ["$a" -gt "$b" ] -ge더 크거나 같음 if [ "$a" -ge "$b" ] -lt더 작음 if [ "$a" -lt "$b" ] -le더 작거나 같음 if [ "$a" -le "$b" ] <더 작음(이중 소괄호에서) (("$a" < "$b")) <=더 작거나 같음(이중 소괄호에서) (("$a" <= "$b")) >더 큼(이중 소괄호에서) (("$a" > "$b")) >=더 크거나 같음(이중 소괄호에서) (("$a" >= "$b")) 문자열 비교 =같음 if [ "$a" = "$b" ] ==같음 if [ "$a" == "$b" ] = 와 동의어입니다. !=같지 않음 if [ "$a" != "$b" ] 이 연산자는 [[ ... ]] 에서 패턴 매칭을 사용합니다. <아스키 알.......
2016-05-24 09:12:31 · 산소소년정수 비교 -eq같음 if [ "$a" -eq "$b" ] -ne같지 않음 if [ "$a" -ne "$b" ] -gt더 큼 if ["$a" -gt "$b" ] -ge더 크거나 같음 if [ "$a" -ge "$b" ] -lt더 작음 if [ "$a" -lt "$b" ] -le더 작거나 같음 if [ "$a" -le "$b" ] =더 크거나 같음(이중 소괄호에서) (("$a" >= "$b")) 문자열 비교 =같음 if [ "$a" = "$b" ] ==같음 if [ "$a" == "$b" ] = 와 동의어입니다. !=같지 않음 if [ "$a" != "$b" ] 이 연산자는 [[ ... ]] 에서 패턴 매칭을 사용합니다.
2016-05-24 09:12:31 · 산소소년정수 비교 -eq같음 if [ "$a" -eq "$b" ] -ne같지 않음 if [ "$a" -ne "$b" ] -gt더 큼 if ["$a" -gt "$b" ] -ge더 크거나 같음 if [ "$a" -ge "$b" ] -lt더 작음 if [ "$a" -lt "$b" ] -le더 작거나 같음 if [ "$a" -le "$b" ] <더 작음(이중 소괄호에서) (("$a" < "$b")) <=더 작거나 같음(이중 소괄호에서) (("$a" <= "$b")) >더 큼(이중 소괄호에서) (("$a" > "$b")) >=더 크거나 같음(이중 소괄호에서) (("$a" >= "$b")) 문자열 비교 =같음 if [ "$a" = "$b" ] ==같음 if [ "$a" == "$b" ] = 와 동의어입니다. !=같지 않음 if [ "$a" != "$b" ] 이 연산자는 [[ ... ]] 에서 패턴 매칭을 사용합니다. <아스키 알.......
2016-05-24 00:12:31 · 산소소년정수 비교 -eq같음 if [ "$a" -eq "$b" ] -ne같지 않음 if [ "$a" -ne "$b" ] -gt더 큼 if ["$a" -gt "$b" ] -ge더 크거나 같음 if [ "$a" -ge "$b" ] -lt더 작음 if [ "$a" -lt "$b" ] -le더 작거나 같음 if [ "$a" -le "$b" ] <더 작음(이중 소괄호에서) (("$a" < "$b")) <=더 작거나 같음(이중 소괄호에서) (("$a" <= "$b")) >더 큼(이중 소괄호에서) (("$a" > "$b")) >=더 크거나 같음(이중 소괄호에서) (("$a" >= "$b")) 문자열 비교 =같음 if [ "$a" = "$b" ] ==같음 if [ "$a" == "$b" ] = 와 동의어입니다. !=같지 않음 if [ "$a" != "$b" ] 이 연산자는 [[ ... ]] 에서 패턴 매칭을 사용합니다. <아스키 알.......
2016-05-24 00:12:31 · 산소소년Data & Execution Lineage in HADOOP/HIVE
많은 구성원들이 사용하는 대규모 하둡 클러스터의 데이터를 관장하고 또 이곳에서 구동되는 수많은 작업들을 개발/관리하는 업무를 수행하다 보니 데이터의 흐름과 사용패턴 등을 확인가능한 툴을 만들고 싶어서 짬이 날때마다 POC를 진행해 보았습니다. 손쉬운 관리를 위해 만드는 툴이기 때문에 개발컨셉은 다음과 같은 제약사항에 중점을 두었습니다. - 클러스터가 대규모 이기 때문에 audit, history, system 로그 등을 한 곳으로 집중시키기 않는다. - 작업 정보를 추출하기 위한 가이드라인이나 템플릿을 제공하여 분석가들의 생산성을 저하시키지 않는다. - 관리이슈를 줄이기 위해 가능한 한 별도의 오픈소스나 외부도구를 이용하지 않.......
2016-04-27 13:22:48 · 산소소년Data & Execution Lineage in HADOOP/HIVE
많은 구성원들이 사용하는 대규모 하둡 클러스터의 데이터를 관장하고 또 이곳에서 구동되는 수많은 작업들을 개발/관리하는 업무를 수행하다 보니 데이터의 흐름과 사용패턴 등을 확인가능한 툴을 만들고 싶어서 짬이 날때마다 POC를 진행해 보았습니다. 손쉬운 관리를 위해 만드는 툴이기 때문에 개발컨셉은 다음과 같은 제약사항에 중점을 두었습니다. - 클러스터가 대규모 이기 때문에 audit, history, system 로그 등을 한 곳으로 집중시키기 않는다. - 작업 정보를 추출하기 위한 가이드라인이나 템플릿을 제공하여 분석가들의 생산성을 저하시키지 않는다. - 관리이슈를 줄이기 위해 가능한 한 별도의 오픈소스나 외부도구를 이용하지 않.......
2016-04-27 13:22:48 · 산소소년Data & Execution Lineage in HADOOP/HIVE
많은 구성원들이 사용하는 대규모 하둡 클러스터의 데이터를 관장하고 또 이곳에서 구동되는 수많은 작업들을 개발/관리하는 업무를 수행하다 보니 데이터의 흐름과 사용패턴 등을 확인가능한 툴을 만들고 싶어서 짬이 날때마다 POC를 진행해 보았습니다. 손쉬운 관리를 위해 만드는 툴이기 때문에 개발컨셉은 다음과 같은 제약사항에 중점을 두었습니다. - 클러스터가 대규모 이기 때문에 audit, history, system 로그 등을 한 곳으로 집중시키기 않는다. - 작업 정보를 추출하기 위한 가이드라인이나 템플릿을 제공하여 분석가들의 생산성을 저하시키지 않는다. - 관리이슈를 줄이기 위해 가능한 한 별도의 오픈소스나 외부도구를 이용하지 않.......
2016-04-27 04:22:48 · 산소소년Data & Execution Lineage in HADOOP/HIVE
많은 구성원들이 사용하는 대규모 하둡 클러스터의 데이터를 관장하고 또 이곳에서 구동되는 수많은 작업들을 개발/관리하는 업무를 수행하다 보니 데이터의 흐름과 사용패턴 등을 확인가능한 툴을 만들고 싶어서 짬이 날때마다 POC를 진행해 보았습니다. 손쉬운 관리를 위해 만드는 툴이기 때문에 개발컨셉은 다음과 같은 제약사항에 중점을 두었습니다. - 클러스터가 대규모 이기 때문에 audit, history, system 로그 등을 한 곳으로 집중시키기 않는다. - 작업 정보를 추출하기 위한 가이드라인이나 템플릿을 제공하여 분석가들의 생산성을 저하시키지 않는다. - 관리이슈를 줄이기 위해 가능한 한 별도의 오픈소스나 외부도구를 이용하지 않.......
2016-04-27 04:22:48 · 산소소년