Pig와 hive의 차이

Clunix Wiki
(버전 사이의 차이)
(hive가 pig를 대체할 가능성)
 
(한 사용자의 중간의 편집 20개 숨겨짐)
1번째 줄: 1번째 줄:
* hive와 pig의 활용도의 차이점
+
==hive와 pig의 활용도의 차이점==
 +
#hive
 +
#*hive는 하둡 data base(하둡 메타데이터를 저장)에 쿼리를 사용하여 접근합니다. 자바를 신경쓰지 않아도 된다는 장점이 있습니다.
 +
#*db를 사용한다는 측면에서 보다 정형화된 data를 생성하고 관리할 수 있다는 장점이 있는 것 같습니다.
 +
#*다만 간단한 mr 작업을 수행할 경우 pig가 더욱 쉽게 쓸 수 있어 보입니다.  pig는 load, store만 쓰면 어렵지 않게 데이터를 읽어올 수 있으며 또한 filter, join같은 강력한 쿼리문도 지원하기 때문입니다. 
 +
#*pig는 sql과 비슷하게 만들어졌을 뿐 pig로 sql지식을 활용하기는 어려워 한계가 있으며 sql을 활용할 생각이면 hive가 더 좋다고 생각됩니다.
 +
#pig
 +
#*pig는 mapreduce api를 단순화 시켰고 sql과 유사하게 만들어서 사용하기 쉽다는 장점이 있습니다. 다만, 높은 수준의 UDF(User Define Function)를 만들기 위해선 자바에 능숙해야합니다.
 +
#*pig는 LoadFunc UDF와 StoreFunc UDF로 하둡의 파일 시스템에 접근하고 쓸 수 있습니다.  다만 pig는 hive와 같이 결과물을 db처럼 관리하기는 어려운 것 같습니다.
 +
#hive와 pig의 활용도의 차이점
 +
#*hive는 sql을 활용한다는 면에서 hdfs를 db처럼 쓰고 싶을 때 쓰는 것 같습니다. 결국 결과물로 나온 data를 지속적으로 관리하고 싶을 때 hive를 쓰라는 것 같습니다.
 +
#*pig는 단순함과 어렵지 않다는 이유로 결과물을 빨리 만들어 쓰라는데 목적이 있는 것 같습니다.
  
1) hive
 
  - hive는 하둡 data base(하둡 메타데이터를 저장)에 쿼리를 사용하여 접근합니다.
 
    자바를 신경쓰지 않아도 된다는 장점이 있습니다.
 
 
  - db를 사용한다는 측면에서 보다 정형화된 data를 생성하고 관리할 수 있다는 장점이 있는 것 같습니다.
 
 
  - 다만 간단한 mr 작업을 수행할 경우 pig가 더욱 쉽게 쓸 수 있어 보입니다.
 
    pig는 load, store만 쓰면 어렵지 않게 데이터를 읽어올 수 있으며 또한 filter, join같은 강력한 쿼리문도 지원하기 때문입니다.
 
    다만 pig는 sql과 비슷하게 만들어졌을 뿐 pig로 sql지식을 활용하기는 어려워 한계가 있으며 sql을 활용할 생각이면 hive가 더 좋다고 생각됩니다.
 
 
 
2) pig
 
 
  - pig는 mapreduce api를 단순화 시켰고 sql과 유사하게 만들어서 사용하기 쉽다는 장점이 있습니다.
 
    다만, 높은 수준의 UDF(User Define Function)를 만들기 위해선 자바에 능숙해야합니다.
 
 
  - pig는 LoadFunc UDF와 StoreFunc UDF로 하둡의 파일 시스템에 접근하고 쓸 수 있습니다.
 
    다만 pig는 hive와 같이 결과물을 db처럼 관리하기는 어려운 것 같습니다.
 
 
 
3) hive와 pig의 활용도의 차이점
 
   
 
    - hive는 sql을 활용한다는 면에서 hdfs를 db처럼 쓰고 싶을 때 쓰는 것 같습니다. 결국 결과물로 나온 data를 지속적으로 관리하고 싶을 때 hive를 쓰라는 것 같습니다.
 
 
  - pig는 단순함과 어렵지 않다는 이유로 결과물을 빨리 만들어 쓰라는데 목적이 있는 것 같습니다.
 
 
 
* hive가 pig를 대체 가능성
 
  
 +
==hive가 pig를 대체할 가능성==
 
  결론은 hive가 pig를 대체할 수 있으며 더 많은 기능과 가능성을 가지고 있다고 생각합니다.  
 
  결론은 hive가 pig를 대체할 수 있으며 더 많은 기능과 가능성을 가지고 있다고 생각합니다.  
  
  hive는 하둡의 메타데이터를 db화 시켜 관리합니다. 그리고 하둡파일 시스템에도 접근할 수 있습니다.
+
  hive는 하둡의 파일 시스템에 접근할 수 있으며 메타데이터를 db화 시켜 관리합니다.  pig는 하둡의 파일 시스템에는 접근할 수 있지만 메타데이터는 읽고 쓰기만 할 뿐 db처럼 관리하지 않습니다.
  pig는 하둡파일 시스템에는 접근할 수 있지만 하둡의 메타데이터는 읽고 쓰기만 할 뿐 db처럼 관리하는 툴은 제공하지 않는 것 같습니다.  
+
  결국 hive는 pig와 같이 하둡파일 시스템과 메타데이터에 접근할 수 있을 뿐만 아니라 pig가 하지 못하는 메타데이터를 db처럼 관리한다는 점에서 pig보다 더 많은 일을 할 것 같습니다.  
  결국 hive는 pig와 같이 하둡파일 시스템과 메타데이터에 접근할 수 있을 뿐만 아니라 pig가 하지 못하는 메타데이터를 db처럼 관리한다는 점에서 pig보다 더 많은 일을 할 것 같습니다.
+
  또한 pig는 기본적인 기능(load, store)은 사용하기 쉽지만 보다 높은 수준의 자료 검색이나 정형화된 data를 추출하는 기능은 hive가 더 좋은 것 같습니다.
  또한 pig는 기본적인 기능(load, store)은 사용하기 쉽지만 보다 높은 수준의 자료 검색이나 정형화된 data를 추출하는 기능은 hive가 더 좋은 것 같습니다.  
+
  (자바함수 구현보다는 sql 쿼리 사용이 더 쉬울것 같습니다.) 그래서 hive를 쓰면 pig가 하는 일을 소화할 수 있을 뿐만 아니라 더 높은 수준의 기능(db관리 같은 기능)도 구현할 수 있어보입니다.  
  (자바함수 구현보다는 sql 쿼리 사용이 더 쉬울것 같습니다.)
+
그래서 hive를 쓰면 pig가 하는 일을 소화할 수 있을 뿐만 아니라 더 높은 수준의 기능(db관리 같은 기능)도 구현할 수 있어보입니다.
+
다만 pig가 쓰기 쉽다는 점은 hive가 따라오기 힘든 장점이며 앞으로 많은 사용자들이 pig를 활용할 것 같아서 pig도 묵혀두기에는 아까워보입니다.  
+
  
  HCatalog를 쓰면 hive와 pig를 연동할 수 있다고 하는데 그것도 알아보면 좋을 것 같습니다.  
+
  다만 pig가 쓰기 쉽다는 점은 hive가 따라오기 힘든 장점이며 앞으로 많은 사용자들이 pig를 활용할 것 같아서 pig도 묵혀두기에는 아까워보입니다. HCatalog를 쓰면 hive와 pig를 연동할 수 있다고 하는데 그것도 알아보면 좋을 것 같습니다. (HCatalog는 하둡의 여러가지 tool(pig, hive등..)들간의 연동을 위해 만들어졌다고 합니다.)
(HCatalog는 하둡의 여러가지 tool(pig, hive등..)들간의 연동을 위해 만들어졌다고 합니다.)
+

2012년 12월 18일 (화) 11:48 현재 판

hive와 pig의 활용도의 차이점

  1. hive
    • hive는 하둡 data base(하둡 메타데이터를 저장)에 쿼리를 사용하여 접근합니다. 자바를 신경쓰지 않아도 된다는 장점이 있습니다.
    • db를 사용한다는 측면에서 보다 정형화된 data를 생성하고 관리할 수 있다는 장점이 있는 것 같습니다.
    • 다만 간단한 mr 작업을 수행할 경우 pig가 더욱 쉽게 쓸 수 있어 보입니다. pig는 load, store만 쓰면 어렵지 않게 데이터를 읽어올 수 있으며 또한 filter, join같은 강력한 쿼리문도 지원하기 때문입니다.
    • pig는 sql과 비슷하게 만들어졌을 뿐 pig로 sql지식을 활용하기는 어려워 한계가 있으며 sql을 활용할 생각이면 hive가 더 좋다고 생각됩니다.
  2. pig
    • pig는 mapreduce api를 단순화 시켰고 sql과 유사하게 만들어서 사용하기 쉽다는 장점이 있습니다. 다만, 높은 수준의 UDF(User Define Function)를 만들기 위해선 자바에 능숙해야합니다.
    • pig는 LoadFunc UDF와 StoreFunc UDF로 하둡의 파일 시스템에 접근하고 쓸 수 있습니다. 다만 pig는 hive와 같이 결과물을 db처럼 관리하기는 어려운 것 같습니다.
  3. hive와 pig의 활용도의 차이점
    • hive는 sql을 활용한다는 면에서 hdfs를 db처럼 쓰고 싶을 때 쓰는 것 같습니다. 결국 결과물로 나온 data를 지속적으로 관리하고 싶을 때 hive를 쓰라는 것 같습니다.
    • pig는 단순함과 어렵지 않다는 이유로 결과물을 빨리 만들어 쓰라는데 목적이 있는 것 같습니다.


hive가 pig를 대체할 가능성

결론은 hive가 pig를 대체할 수 있으며 더 많은 기능과 가능성을 가지고 있다고 생각합니다. 
hive는 하둡의 파일 시스템에 접근할 수 있으며 메타데이터를  db화 시켜 관리합니다.  pig는 하둡의 파일 시스템에는 접근할 수 있지만 메타데이터는 읽고 쓰기만 할 뿐 db처럼 관리하지 않습니다.
결국 hive는 pig와 같이 하둡파일 시스템과 메타데이터에 접근할 수 있을 뿐만 아니라 pig가 하지 못하는 메타데이터를 db처럼 관리한다는 점에서 pig보다 더 많은 일을 할 것 같습니다. 
또한 pig는 기본적인 기능(load, store)은 사용하기 쉽지만 보다 높은 수준의 자료 검색이나 정형화된 data를 추출하는 기능은 hive가 더 좋은 것 같습니다.  
(자바함수 구현보다는 sql 쿼리 사용이 더 쉬울것 같습니다.) 그래서 hive를 쓰면 pig가 하는 일을 소화할 수 있을 뿐만 아니라 더 높은 수준의 기능(db관리 같은 기능)도 구현할 수 있어보입니다. 
다만 pig가 쓰기 쉽다는 점은 hive가 따라오기 힘든 장점이며 앞으로 많은 사용자들이 pig를 활용할 것 같아서 pig도 묵혀두기에는 아까워보입니다. HCatalog를 쓰면 hive와 pig를 연동할 수 있다고 하는데 그것도 알아보면 좋을 것 같습니다. (HCatalog는 하둡의 여러가지 tool(pig, hive등..)들간의 연동을 위해 만들어졌다고 합니다.)
부서별 위키