What is Spring for Apache Hadoop?

개요: Spring 엔터프라이즈 애플리케이션 개발에 널리 사용되는 프레임 워크 중 하나입니다. Spring 봄 ORM 같은 다른 구성 요소가 있습니다, 봄 JDBC는 등 다양한 기능을 지원하는. 아파치 하둡을위한 봄은 HDFS와 같은 하둡 구성 요소와 응용 프로그램 구축을 지원하는 프레임 워크입니다, 맵리 듀스와 하이브 등. Spring 이러한 모든 구성 요소와 함께 작동하도록 API를 제공합니다. Spring은 실제 응용 프로그램 개발을위한 다른 봄 생태계 프로젝트와 하둡의 통합을 지원합니다. 이 문서에서 우리는의 사용에 대해 설명합니다 Spring 아파치 하둡 프레임 워크에 대한.

소개:
아파치 하둡은 오픈 소스 소프트웨어 프레임 워크이다, 큰 볼륨의 데이터 세트를 저장하고 처리하는 데 사용됩니다. Spring은 오픈 소스 프레임 워크입니다, 널리 자바 / J2EE 애플리케이션에 사용되는. Spring의 의존성 주입 (의) 또는 제어의 반전 (IO) 메커니즘은 엔터프라이즈 자바 빈즈에 인기있는 대안이되고있다 (또는 EJB) model. 봄은 쉽게 다른 개발 프레임 워크와 연결 할 수있을만큼 유연하다는 장점이있다. 봄의 이러한 장점을 사용하여, 우리는 우리가이 두 프레임 워크의 각각의 최대의 이익을 얻을 수 있도록 아파치 하둡으로 연결할 수 있습니다.

시작하기:
이 섹션에서 우리는 스프링을 사용하여 하둡 맵리 듀스 작업을 만드는 방법에 대해 이야기합니다. 이는 다음 단계를 포함 -

  • Step 1 – 우리가 받는다는는 pom.xml 파일에 크게 의존 아시다시피 - 메이븐을 사용하여 필요한 종속성을 구합니다, 우리는 우리의 pom.xml 파일에 다음과 같이 설정합니다. 이러한 종속 항목은 하둡 코어와 스프링 프레임 워크입니다.

목록 1: 의 pom.xml 파일의 샘플 구성 항목

[코드]

< !– 봄 데이터 아파치 하둡 — >
< 의존 >
< 의 groupId > org.springframework.data </ 의 groupId >
< artifactId를 > 스프링 데이터 하둡 </ artifactId를 >
< version > 1.0.0.해제 </ version >
< /의존 >
< !– 아파치 하둡 코어 -- >
< 의존 >
< 의 groupId > org.apache.hadoop </ 의 groupId >
< artifactId를 > 하둡 코어 </ artifactId를 >
< version > 1.0.3 </version >
</의존>

[/ 코드]

  • Step 2 – 매퍼 구성 요소 만들기 - 우리가 알고있는 바와 같이 매퍼 구성 요소는 작은 구성 요소로 실제 문제를 분해하는 데 사용됩니다. 해결하기 위해이 작은 구성 요소는 쉬워. 우리는 아파치지도 매퍼 클래스를 감소 확장하여 우리 고유의 사용자 정의 매퍼 구성 요소를 가질 수 있습니다. 우리는이 클래스의지도 방법을 재정의해야. 매퍼 클래스는 다음과 같은 네 개의 매개 변수를 예상 -

입력의 경우: 다음 매개 변수를 입력 키와 값입니다

  • THEN 이 파라미터는 매퍼 요소에 대한 입력으로서 제공되는 키 입력을 설명.
  • VALUEIN 이 파라미터는 매퍼 요소에 대한 입력으로서 제공되는 값의 종류를 설명.

출력: 다음 매개 변수는 출력 키와 값입니다

  • KEYOUT이 파라미터는 매퍼 요소로부터 키 파라미터를 넣어 아웃의 유형을.
  • VALUEOUT이 파라미터는 매퍼 요소로부터의 출력 값의 유형을.

이러한 매개 변수 각각은을 구현해야합니다 쓰기 interface. 주어진 예에서,, 우리가 모든 라인의 키 - 값 쌍을 한번에 한 라인 파일의 내용을 판독하기 위해 준비하는 맵퍼를 사용한. 지도 방법의 우리의 구현은 다음 작업을 수행합니다 -

  • First, 단어에 각 한 줄을 분할
  • 둘째, 모든 단어를 반복하고도 문자 나 문자는 모든 유니 코드 문자도 꺼내.
  • 제삼, 의 쓰기 방법을 사용하여 키 - 값 쌍을 구성 문맥 예상 출력 키 - 값 쌍과 호환되는 클래스.

Listing2: 샘플 사용자 정의 매퍼 클래스

[Code]

공용 클래스 MyWordMapper는 매퍼를 확장<LongWritable, 본문, 본문, IntWritable> {
개인 텍스트 myword = 새로운 텍스트();

@ 재정의
보호 무효지도(LongWritable 키, 텍스트 값, 컨텍스트 컨텍스트) 예외 : IOException가 슬로우, 예외 : InterruptedException {
캐릭터 라인은 value.toString을 =();
그러면 StringTokenizer lineTokenz = 새로운 그러면 StringTokenizer(line);
while (lineTokenz.hasMoreTokens()) {
문자열 cleaned_data = removeNonLettersNonNumbers(lineTokenz.nextToken());
myword.set(cleaned_data);
context.write(myword, 새로운 IntWritable(1));
}
}

/**
* 빈 문자열도 숫자 나 문자가 모든 유니 코드 문자를 교체.
* 파라미터 : 원래, 그것은 원래의 문자열입니다
* 문자와 숫자 만 포함 된 문자열 객체를 @return
*/
개인 문자열 removeNonLettersNonNumbers (문자열 원래) {
original.replaceAll 반환(“[^ \ 페이지{엘}\\p{N}]”, “”);
}
}

[/Code]

Step 3 – 만들기 감속기 구성 요소 - 감속기는 앞으로 원치 않는 중간 값과 관련이있는 만 키 값 쌍을 삭제하는 구성 요소입니다. 우리의 사용자 정의 감속기를하려면, 우리의 클래스를 확장한다 감속기 클래스 이상의 방법을 줄일 타고. 감속기 클래스는 다음과 같은 네 개의 매개 변수 예상.

입력의 경우: 다음 매개 변수를 입력 키와 값입니다

  • THEN 이 파라미터는 매퍼 요소에 대한 입력으로서 제공되는 키 입력을 설명.
  • VALUEIN 이 파라미터는 매퍼 요소에 대한 입력으로서 제공되는 값의 종류를 설명.

출력: 다음 매개 변수는 출력 키와 값입니다

  • KEYOUT이 파라미터는 매퍼 요소로부터 키 파라미터를 넣어 아웃의 유형을
  • VALUEOUT이 파라미터는 매퍼 요소로부터의 출력 값의 유형을.

우리가 '키 입력'과 'KEYOUT'매개 변수의 데이터 유형이 동일한 지 확인해야합니다 구현하는 동안. 또한 'valuein'와 valueout '매개 변수는 동일한 유형이어야합니다. 줄이거 방법의 본 구현 예는 다음의 단계를 수행하는 -

  • First, 입력 키가 원하는 단어가 포함되어 있는지 확인.
  • 둘째, 위의 단계에 해당하는 경우, 단어의 발생 횟수를 얻을.
  • 제삼, 감속기 클래스의 write 메소드를 호출하여 새로운 키 - 값 쌍을 구성.

Listing3: 샘플 사용자 정의 감속기 클래스

[Code]

수입 org.apache.hadoop.io.IntWritable;
수입 org.apache.hadoop.io.Text;
수입 org.apache.hadoop.mapreduce.Reducer;

공용 클래스 MyWordReducer는 감속기를 확장<본문, IntWritable, 본문, IntWritable> {
정적 최종 문자열 MY_TARGET_TEXT 보호 = “Hadoop”;

@ 재정의
보호 무효 감소(텍스트 keyTxt, 의 Iterable<IntWritable> 값, 컨텍스트 컨텍스트) 예외 : IOException가 슬로우, 예외 : InterruptedException {
면 (containsTargetWord(keyTxt)) {
INT wCount = 0;
용 (IntWritable 값: 값) {
wCount = value.get();
}
context.write(key, 새로운 IntWritable(wCount));
}
}
개인 부울 containsTargetWord(텍스트 keyTxt) {
keyTxt.toString를 반환().동일(MY_TARGET_TEXT);
}
}

[/Code]

  • Step 4 – 애플리케이션 컨텍스트 생성 - 다음 단계는 XML을 사용하여 애플리케이션 콘텍스트를 생성하는 것이다. 우리는 다음과 같은 단계를 이용하여 우리의 애플리케이션의 애플리케이션 컨텍스트를 구성 할 수 -
    • 구성 등록 정보의 값을 포함하는 특성 파일을 작성. 샘플 응용 프로그램 속성 파일는 다음과 같습니다 -

[Code]
fs.default.name = HDFS://로컬 호스트:9000
mapred.job.tracker = 로컬 호스트:9001
input.path = / 경로 /로 / 입력 / 파일 /
output.path = / 경로 /로 / 출력 / 파일
[/Code]

  • 생성 된 속성 파일에서 구성 등록 정보의 값을 가져 오는 데 사용되는 속성 장소 홀더 구성. 이것은 우리의 애플리케이션 컨텍스트 XML 파일에서 다음을 추가함으로써 수행 될 수있다 -

[Code]
<문맥:부동산-자리 위치 =”classpath:application.properties” />

[/Code]

  • 아파치 하둡 및 작업을 구성합니다 - 우리는 기본 파일 시스템과 그 작업의 추적을 구성 할 수 있습니다 우리의 애플리케이션 컨텍스트 파일에 다음을 추가하여

[Code]

<HDP:구성>
fs.default.name = ${fs.default.name}
mapred.job.tracker = ${mapred.job.tracker}
</HDP:구성>

[/Code]

우리는 작업 추적기를 정의하는 우리의 응용 프로그램 컨텍스트 XML 파일에 다음을 추가해야합니다 -

[Code]
<HDP:작업 ID =”wordCountJobId”
입력 경로 =”${input.path}”
출력 경로 =”${output.path}”
단지 별 클래스 =”net.qs.spring.data.apachehadoop.Main”
매퍼 =”net.qs.spring.data.apachehadoop.MyWordMapper”
감속기 =”net.qs.spring.data.apachehadoop.MyWordReducer”/>

[/Code]

  • 생성 된 하둡 작업을 실행하는 작업 러너 구성. 작업 러너 우리의 애플리케이션 컨텍스트 XML 파일에서 다음을 추가하여 구성 할 수있다

[Code]
<HDP:작업 주자 아이디 =”wordCountJobRunner” 작업-REF =”wordCountJobId” 런타임에서-시작 =”참된”/>
[/Code]

  • Step 5 – 시작시 응용 프로그램 컨텍스트를로드 - 응용 프로그램이 시작될 때 우리는 지금 애플리케이션 컨텍스트를로드하여 만든 하둡 작업을 실행 할 수 있습니다. 우리는 생성자에 입력 매개 변수로 우리의 애플리케이션 컨텍스트 파일의 이름을 받아들이는 ClasspathXmlApplicationContext 객체의 인스턴스를 생성하여이 작업을 수행 할 수 있습니다. 이 아래로 수행 할 수 있습니다 -

Listing4: 애플리케이션 컨텍스트의 샘플을 보여주는로드

[Code]
수입 org.springframework.context.ApplicationContext;
수입 org.springframework.context.support.ClassPathXmlApplicationContext;

공용 클래스 메인 {
공공 정적 무효 메인(끈[] 논쟁) {
ApplicationContext를 CTX = 새로운 ClassPathXmlApplicationContext(“applicationContext.xml”);
}
}

[/Code]

  • Step 6 – 맵리 듀스 작업을 실행 - 우리는 우리의지도는 다음 단계를 사용하여 작업을 줄이기 시작할 수 있습니다 -
  • HDFS에 입력 파일을 업로드 - 우리는 명령 프롬프트에서 다음 명령을 실행하여이 작업을 수행 할 수 있습니다 -

[Code]

하둡 DFS 저것 집어 넣어의 Sample.txt /input/sample.txt

[/Code]

이 예에서 사용 된 샘플 입력 파일은 다음과. 대상 키워드 '하둡 ' 으로 강조 표시됩니다 녹색. 단어 '하둡 ' 존재 4 샘플의 시간.

Input

입력

Image1: 샘플 입력 파일

  • 파일이 다음 명령을 실행하여 성공적으로 업로드되었는지 확인. 이 입력 파일을 표시 할.

[코드]

하둡 DFS -ls / 입력

[/코드]

  • 맵리 듀스 작업을 실행. 이것은 IDE에서 우리의 자바 파일의 기본 방법을 실행하여 수행 할 수 있습니다. 모든 단계가 예상대로 작동하면 다음과 같은 출력 것.

산출: Hadoop 4
Summary: 우리가 다음 글 머리 기호에서 지금까지 논의 된 것을 결론하자 –

  • 양자 모두 SpringHadoop 오픈 소스 커뮤니티에서 유용한 프레임 워크는.
  • 이러한 결합함으로써 우리는 모두 프레임 워크의 혜택을 얻을 수 있습니다.
  • 전술 한 바와 같이 여섯 단계 공정은지도하여 스프링 작업을 줄일 수있다 만들기.
Tagged on: ,
============================================= ============================================== 아마존에서 최고의 Techalpine 책을 구입하십시오,en,전기 기술자 CT 밤나무 전기,en
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share