2016-09-15 5 views
0

나는 flume과 Kafka를 알고 있지만 이벤트 드리븐 도구입니다. 이벤트 중심 또는 실시간 일 필요는 없지만 하루에 한 번만 가져 오기를 예약 할 수 있습니다.API에서 데이터를 가져 와서 HDFS에 저장하는 방법

API에서 HDFS로 데이터를 가져 오는 데 사용할 수있는 데이터 처리 도구는 무엇입니까?

HBase가 아닌 HDFS와 하이브 중 하나를 사용하고 있습니다.

꽤 많은 시간 동안 나는 R 언어를 사용했지만 좀 더 견고하며 Hadoop 환경의 기본 솔루션이 될 수 있습니다.

답변

2

스칼라 또는 파이썬을 사용해보십시오. API에서 HDFS 로의 접근에는 몇 가지 방법이 있습니다. 첫 번째 방법은 에지 노드 (본질적으로 리눅스 서버)에서 실행되는 스크립트를 작성하여 API에서 데이터를 가져 와서 Linux 파일 시스템의 디렉토리에 저장하는 것입니다. 그런 다음 스크립트는 HDFS 파일 시스템 명령을 사용하여 데이터를 HDFS에 넣을 수 있습니다.

두 번째 방법은 Spark로 Scala 또는 Python을 사용하여 API를 호출하고 Spark 제출 작업을 사용하여 HDFS에 데이터를 직접로드하는 것입니다. 이 스크립트는 Spark를 사용하여 LFS에 데이터를 저장하지 않고 우회하는 에지 노드에서 실행됩니다.

첫 번째 옵션은 구현하기가 더 쉽습니다. 두 번째 옵션은 거대한 데이터 볼륨이나 다중 ID/계정을 동시에 호출하여 병렬 처리 할 수있는 API가 있는지 살펴볼 가치가 있습니다.

+0

파이썬 스크립트 만 있으면이 데이터를 텍스트 파일에 저장할 수 있습니다. 변경된 경우 데이터를 어떻게 업데이트합니까? 보통 JSON을 CSV로 변환 한 다음 하이브로 매핑합니다. CSV에서 행을 업데이트하는 것은 많은 문제입니다.이 문제에 접근하는 방법은 무엇입니까? –

+0

매번 전체 CSV 파일을 바꾸거나 API에서 새롭거나 업데이트 된 데이터 만 가져온 다음 테이블에 기록 데이터를 보관하고 레코드를 업데이트/추가 할 수있는 삽입 덮어 쓰기 문으로 대상 하이브 테이블을 업데이트합니다 필요에 따라. – Jared

+0

오, 멋지다. 그게 가능하니? 파이썬이나 R과 같은 프로그래밍 언어를 사용하여 하이브의 행을 새로운 값으로 업데이트하는 방법? 나는 CSV 파일을 대체하려고했지만 좋은 느낌이 들지 않습니다. –

관련 문제