항목의 절차 --- 단어 수의 맵리 듀스

MapReduce는이 정의에 의해 두 부분으로 처리되어 그들의 임무를 수행, 주 기능 맵 문서 처리를 치료하기 위해 사용되는 매핑 감소로 분할되는 매우 중요한 부분 하둡 생태이며, 데이터는 행에 의해 주로 판독 세그멘테이션을 수행하고, 대상 데이터가 획득 될 때까지, 청소 명확한 다른 사용자의 요구에 따라 결정된다. 주로지도, 요약에서 집계 된 데이터에 프로그램을 줄일 수 있습니다. 그리고 마지막으로 대상 파일에 대한 통계 입력의 결과로. 특정 코드로 다음과 WCMapper.java 수입 때 java.io.IOException; 수입 org.apache.commons.lang.StringUtils를, 수입 org.apache.hadoop.io.LongWritable를, 수입 org.apache.hadoop.io.Text를, 수입 조직을. apache.hadoop.mapreduce.Mapper // 일반적으로 4 종류의 첫번째 두 개의 매퍼 KENY 입력 키 입력 데이터 형식의 종류가, VALUIN지도 //의 값을 참조하여 상기 입력 및 출력 데이터는 감소 텍스트의 하나 개의 라인으로 처리 될 오프셋 // 디폴트는 키 값에 의해 전달된다 우리 매퍼 프레임의 입력 데이터 프레임의 형태로 존재하는, 키 시작 위치가되는 값 공용 클래스 WCMapper 등이 광고의 내용 매퍼를 확장 {// 데이터의 각 행의 mapredure 프레임 워크는 메소드를 호출, 재귀 호출이 @Override 무효지도 (LongWritable 키, 텍스트 값, 컨텍스트 컨텍스트를) 보호를이 방식으로 작성 IOException이, 예외 : InterruptedException {// 특정 비즈니스 로직을 던져, 그리고 우리 데이터왔다 프레임 처리부로 전달되고, 키 값 //이 점에있어서의 중요한 파라미터는, 상기 오프셋 값은 문자열 문자열 라인 = 값이 행의 행 // 내용의 광고 데이터의 내용은 ( " '라인) //이 줄 나뉘어져 내용 캐릭터 [] = 단어 StringUtils.split;를 ()로 .toString // 반복 할 형태의 유전율 KV : 1 : V 단어 (문자열 단어 : 단어) {context.write (새 텍스트 (단어), 새로운 LongWritable (1));}}} WCReducer.java 가져 오기 때 java.io.IOException; org.apache.hadoop.io.LongWritable 수입, 수입 org.apache.hadoop.io 는 .text는, 수입 org.apache.hadoop.mapreduce.Reducer는, 공용 클래스 WCReducer는 감속기를 확장 {//지도 데이터 처리의 종료 후, 캐시 KV, 모두 그룹화하고, 패킷 전달 감소 번 호출 // @Override 보호 무효가 감소 (텍스트 키의 Iterable } 통계적 결과 출력 파일을 //; 값) {+ = value.get ()를 계산 : // 이송 valueslist (LongWritable 값의 누적 합, 값 컨텍스트 콘테스트) IOException가, 예외 : InterruptedException {긴 카운트 = 0 슬로우 contest.write (키, 새로운 LongWritable (수));}} WCRunner.java 수입 때 java.io.IOException; 수입 org.apache.hadoop.conf.Configuration, 수입 org.apache.hadoop.fs.Path, 수입 조직. apache.hadoop.io.LongWritable, 수입 org.apache.hadoop.io.Text, 수입 org.apache.hadoop.mapreduce.Job, 수입 org.apache.hadoop.mapreduce.lib.input.FileInputFormat, 수입 org.apache. hadoop.mapreduce.lib.output.FileOutputFormat가; 공용 클래스 WCRunner {// 특정 작업을 설명하는 데 사용, 이러한 작업은 그 논리 기반의 헤어 치료를 줄일 수있다, 그 클래스는 논리 처리 맵을 변경 지정 // , 작업 데이터의 변화도 IOException이, ClassNotFoundException가 발생은 공공 정적 무효 메인 (문자열 [] 인수)로 완성되는 경로 // 출력 작업 지정 처리 경로를 지정할예외 : InterruptedException {구성의 conf = 새로운 구성 (); 욥이 작업 = Job.getInstance (conf의가); //이 작업은; // 설정 위치 job.setJarByClass 작업 클래스 전체 항아리 패키지 (WCRunner.class)에 사용됩니다 job.setReducerClass (WCReducer.class); 매퍼 줄일 job.setMapperClass은 (WCMapper.class) // 사용 KV 형 job.setOutputKeyClass (Text.class) 줄이기 위해 지정된, job.setOutputValueClass (LongWritable.class)를 // job.setMapOutputValueClass (LongWritable.class);지도 KV의 job.setMapOutputKeyClass (Text.class)의 유형을 지정합니다 // 지정된 메타 데이터 지정을 어디에 여기에 파일 경로 // 파일 경로는 Windows 수 있으며, HDFS에있을 수 있습니다 경로는 서로 제공 FileInputFormat.setInputPaths (작업, 새 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / srcdata.txt"))와 통신 할 수 FileOutputFormat.setOutputPath (작업, 새 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / 출력 "))) (참 클러스터 job.waitForCompletion에 제출 // 작업;}} 코드 섹션은 해당 자세한 설명이 있습니다.setJarByClass (WCRunner.class) 본 작업에 사용 // 맵퍼 및 job.setMapperClass (WCMapper.class)를 감소; job.setReducerClass (WCReducer.class) // KV 타입 job.setOutputKeyClass (Text.class)을 줄이기 위해 지정된 ; job.setOutputValueClass (LongWritable.class는) // 지정한지도 KV 형 job.setMapOutputKeyClass (Text.class) job.setMapOutputValueClass (LongWritable.class는) // 지정된 메타 어디 파일 경로 위치를 모두 지정 // 파일 경로는 () 작업, 새 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / srcdata.txt") 서로 FileInputFormat.setInputPaths와 통신 할 수 있습니다 제공하는 경로 HDFS에있을 수 있습니다, 윈도우 일 수있다 FileOutputFormat. setOutputPath (작업, 새로운 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / 출력")); // 클러스터 job.waitForCompletion에 제출 될 것입니다 (사실) 작업;}} 코드 섹션은 해당 자세한 설명이 있습니다.setJarByClass (WCRunner.class) 본 작업에 사용 // 맵퍼 및 job.setMapperClass (WCMapper.class)를 감소; job.setReducerClass (WCReducer.class) // KV 타입 job.setOutputKeyClass (Text.class)을 줄이기 위해 지정된 ; job.setOutputValueClass (LongWritable.class는) // 지정한지도 KV 형 job.setMapOutputKeyClass (Text.class) job.setMapOutputValueClass (LongWritable.class는) // 지정된 메타 어디 파일 경로 위치를 모두 지정 // 파일 경로는 () 작업, 새 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / srcdata.txt") 서로 FileInputFormat.setInputPaths와 통신 할 수 있습니다 제공하는 경로 HDFS에있을 수 있습니다, 윈도우 일 수있다 FileOutputFormat. setOutputPath (작업, 새로운 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / 출력")); // 클러스터 job.waitForCompletion에 제출 될 것입니다 (사실) 작업;}} 코드 섹션은 해당 자세한 설명이 있습니다.setOutputValueClass은 (LongWritable.class는); // 지정된 맵의 KV 유형 job.setMapOutputKeyClass (Text.class) job.setMapOutputValueClass (LongWritable.class는); // 여기에 창문이 될 수있다 // 지정된 메타 데이터는 파일 경로를 지정합니다 FileOutputFormat.setOutputPath (작업, 파일 경로는 서로 FileInputFormat.setInputPaths (작업, 새 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / srcdata.txt"))와 통신 할 수있는 경로 HDFS 제공 될 수있다 새로운 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / 출력")); // 실제 클러스터 job.waitForCompletion (제출 작업이);}} 코드 섹션은 해당 자세한 설명이 있습니다.setOutputValueClass은 (LongWritable.class는); // 지정된 맵의 KV 유형 job.setMapOutputKeyClass (Text.class) job.setMapOutputValueClass (LongWritable.class는); // 여기에 창문이 될 수있다 // 지정된 메타 데이터는 파일 경로를 지정합니다 FileOutputFormat.setOutputPath (작업, 파일 경로는 서로 FileInputFormat.setInputPaths (작업, 새 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / srcdata.txt"))와 통신 할 수있는 경로 HDFS 제공 될 수있다 새로운 경로 ( "/ 홈 / 하둡 / 데이터 shixun / 단어 수 / 출력")); // 실제 클러스터 job.waitForCompletion (제출 작업이);}} 코드 섹션은 해당 자세한 설명이 있습니다./ 홈 / 하둡 / 데이터 shixun / 단어 수 / 출력 ")); // 실제 클러스터 job.waitForCompletion (제출 작업);}} 코드 섹션은 해당 자세한 설명이 있습니다./ 홈 / 하둡 / 데이터 shixun / 단어 수 / 출력 ")); // 실제 클러스터 job.waitForCompletion (제출 작업);}} 코드 섹션은 해당 자세한 설명이 있습니다.

추천

출처www.cnblogs.com/ljysy/p/11455790.html