tar -zxvf jdk1.7.0_79.tar.gz -C /opt/modules
设置JDK的环境变量 JAVA_HOME。需要修改配置文件/etc/profile,追加
export JAVA_HOME="/opt/modules/jdk1.7.0_79"
export PATH=$JAVA_HOME/bin:$PATH
修改完毕后,执行
source /etc/profile
[root@izuf61z1rt2fvuhr3u07s0z modules]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
hadoop安装
下载路径:
http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
tar -xvf hadoop-2.9.0
[root@izuf61z1rt2fvuhr3u07s0z hadoop-2.9.0]# echo ${JAVA_HOME}
/opt/modules/jdk1.7.0_79
我们这里用hadoop自带的wordcount例子来在本地模式下测试跑mapreduce。
modules
[root@izuf61z1rt2fvuhr3u07s0z opt]# mkdir data
[root@izuf61z1rt2fvuhr3u07s0z opt]# ls
data modules
[root@izuf61z1rt2fvuhr3u07s0z opt]# cat /opt/data/wc.input
cat: /opt/data/wc.input: No such file or directory
[root@izuf61z1rt2fvuhr3u07s0z opt]# ls
data modules
[root@izuf61z1rt2fvuhr3u07s0z opt]# cd data/
[root@izuf61z1rt2fvuhr3u07s0z data]# vim wc.input
//添加一下内容
hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop
~
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.0.jar wordcount /opt/data/wc.input output2
以下是执行信息
18/01/26 16:58:59 INFO Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id
18/01/26 16:58:59 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
18/01/26 16:59:00 INFO input.FileInputFormat: Total input files to process : 1
18/01/26 16:59:00 INFO mapreduce.JobSubmitter: number of splits:1
18/01/26 16:59:00 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_local2035507941_0001
18/01/26 16:59:01 INFO mapreduce.Job: The url to track the job: http://localhost:8080/
18/01/26 16:59:01 INFO mapreduce.Job: Running job: job_local2035507941_0001
18/01/26 16:59:01 INFO mapred.LocalJobRunner: OutputCommitter set in config null
18/01/26 16:59:01 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
18/01/26 16:59:01 INFO output.FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: false
18/01/26 16:59:01 INFO mapred.LocalJobRunner: OutputCommitter is org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter
18/01/26 16:59:01 INFO mapred.LocalJobRunner: Waiting for map tasks
18/01/26 16:59:01 INFO mapred.LocalJobRunner: Starting task: attempt_local2035507941_0001_m_000000_0
18/01/26 16:59:01 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
18/01/26 16:59:01 INFO output.FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: false
18/01/26 16:59:01 INFO mapred.Task: Using ResourceCalculatorProcessTree : [ ]
18/01/26 16:59:01 INFO mapred.MapTask: Processing split: file:/opt/data/wc.input:0+71
18/01/26 16:59:01 INFO mapred.MapTask: (EQUATOR) 0 kvi 26214396(104857584)
18/01/26 16:59:01 INFO mapred.MapTask: mapreduce.task.io.sort.mb: 100
18/01/26 16:59:01 INFO mapred.MapTask: soft limit at 83886080
18/01/26 16:59:01 INFO mapred.MapTask: bufstart = 0; bufvoid = 104857600
18/01/26 16:59:01 INFO mapred.MapTask: kvstart = 26214396; length = 6553600
18/01/26 16:59:01 INFO mapred.MapTask: Map output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
18/01/26 16:59:01 INFO mapred.LocalJobRunner:
18/01/26 16:59:01 INFO mapred.MapTask: Starting flush of map output
18/01/26 16:59:01 INFO mapred.MapTask: Spilling map output
18/01/26 16:59:01 INFO mapred.MapTask: bufstart = 0; bufend = 115; bufvoid = 104857600
18/01/26 16:59:01 INFO mapred.MapTask: kvstart = 26214396(104857584); kvend = 26214356(104857424); length = 41/6553600
18/01/26 16:59:01 INFO mapred.MapTask: Finished spill 0
18/01/26 16:59:01 INFO mapred.Task: Task:attempt_local2035507941_0001_m_000000_0 is done. And is in the process of committing
18/01/26 16:59:01 INFO mapred.LocalJobRunner: map
18/01/26 16:59:01 INFO mapred.Task: Task 'attempt_local2035507941_0001_m_000000_0' done.
18/01/26 16:59:01 INFO mapred.LocalJobRunner: Finishing task: attempt_local2035507941_0001_m_000000_0
18/01/26 16:59:01 INFO mapred.LocalJobRunner: map task executor complete.
18/01/26 16:59:01 INFO mapred.LocalJobRunner: Waiting for reduce tasks
18/01/26 16:59:01 INFO mapred.LocalJobRunner: Starting task: attempt_local2035507941_0001_r_000000_0
18/01/26 16:59:01 INFO output.FileOutputCommitter: File Output Committer Algorithm version is 1
18/01/26 16:59:01 INFO output.FileOutputCommitter: FileOutputCommitter skip cleanup _temporary folders under output directory:false, ignore cleanup failures: false
18/01/26 16:59:01 INFO mapred.Task: Using ResourceCalculatorProcessTree : [ ]
18/01/26 16:59:01 INFO mapred.ReduceTask: Using ShuffleConsumerPlugin: org.apache.hadoop.mapreduce.task.reduce.Shuffle@62599103
18/01/26 16:59:01 INFO reduce.MergeManagerImpl: MergerManager: memoryLimit=363285696, maxSingleShuffleLimit=90821424, mergeThreshold=239768576, ioSortFactor=10, memToMemMergeOutputsThreshold=10
18/01/26 16:59:01 INFO reduce.EventFetcher: attempt_local2035507941_0001_r_000000_0 Thread started: EventFetcher for fetching Map Completion Events
18/01/26 16:59:01 INFO reduce.LocalFetcher: localfetcher#1 about to shuffle output of map attempt_local2035507941_0001_m_000000_0 decomp: 90 len: 94 to MEMORY
18/01/26 16:59:01 INFO reduce.InMemoryMapOutput: Read 90 bytes from map-output for attempt_local2035507941_0001_m_000000_0
18/01/26 16:59:01 INFO reduce.MergeManagerImpl: closeInMemoryFile -> map-output of size: 90, inMemoryMapOutputs.size() -> 1, commitMemory -> 0, usedMemory ->90
18/01/26 16:59:01 INFO reduce.EventFetcher: EventFetcher is interrupted.. Returning
18/01/26 16:59:01 INFO mapred.LocalJobRunner: 1 / 1 copied.
18/01/26 16:59:01 INFO reduce.MergeManagerImpl: finalMerge called with 1 in-memory map-outputs and 0 on-disk map-outputs
18/01/26 16:59:01 WARN io.ReadaheadPool: Failed readahead on ifile
EBADF: Bad file descriptor
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.posix_fadvise(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.posixFadviseIfPossible(NativeIO.java:267)
at org.apache.hadoop.io.nativeio.NativeIO$POSIX$CacheManipulator.posixFadviseIfPossible(NativeIO.java:146)
at org.apache.hadoop.io.ReadaheadPool$ReadaheadRequestImpl.run(ReadaheadPool.java:208)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
18/01/26 16:59:01 INFO mapred.Merger: Merging 1 sorted segments
18/01/26 16:59:01 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 81 bytes
18/01/26 16:59:01 INFO reduce.MergeManagerImpl: Merged 1 segments, 90 bytes to disk to satisfy reduce memory limit
18/01/26 16:59:01 INFO reduce.MergeManagerImpl: Merging 1 files, 94 bytes from disk
18/01/26 16:59:01 INFO reduce.MergeManagerImpl: Merging 0 segments, 0 bytes from memory into reduce
18/01/26 16:59:01 INFO mapred.Merger: Merging 1 sorted segments
18/01/26 16:59:01 INFO mapred.Merger: Down to the last merge-pass, with 1 segments left of total size: 81 bytes
18/01/26 16:59:01 INFO mapred.LocalJobRunner: 1 / 1 copied.
18/01/26 16:59:01 INFO Configuration.deprecation: mapred.skip.on is deprecated. Instead, use mapreduce.job.skiprecords
18/01/26 16:59:01 INFO mapred.Task: Task:attempt_local2035507941_0001_r_000000_0 is done. And is in the process of committing
18/01/26 16:59:01 INFO mapred.LocalJobRunner: 1 / 1 copied.
18/01/26 16:59:01 INFO mapred.Task: Task attempt_local2035507941_0001_r_000000_0 is allowed to commit now
18/01/26 16:59:01 INFO output.FileOutputCommitter: Saved output of task 'attempt_local2035507941_0001_r_000000_0' to file:/opt/modules/hadoop-2.9.0/output2/_temporary/0/task_local2035507941_0001_r_000000
18/01/26 16:59:01 INFO mapred.LocalJobRunner: reduce > reduce
18/01/26 16:59:01 INFO mapred.Task: Task 'attempt_local2035507941_0001_r_000000_0' done.
18/01/26 16:59:01 INFO mapred.LocalJobRunner: Finishing task: attempt_local2035507941_0001_r_000000_0
18/01/26 16:59:01 INFO mapred.LocalJobRunner: reduce task executor complete.
18/01/26 16:59:02 INFO mapreduce.Job: Job job_local2035507941_0001 running in uber mode : false
18/01/26 16:59:02 INFO mapreduce.Job: map 100% reduce 100%
18/01/26 16:59:02 INFO mapreduce.Job: Job job_local2035507941_0001 completed successfully
18/01/26 16:59:02 INFO mapreduce.Job: Counters: 30
File System Counters
FILE: Number of bytes read=607280
FILE: Number of bytes written=1553220
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
Map-Reduce Framework
Map input records=4
Map output records=11
Map output bytes=115
Map output materialized bytes=94
Input split bytes=88
Combine input records=11
Combine output records=7
Reduce input groups=7
Reduce shuffle bytes=94
Reduce input records=7
Reduce output records=7
Spilled Records=14
Shuffled Maps =1
Failed Shuffles=0
Merged Map outputs=1
GC time elapsed (ms)=43
Total committed heap usage (bytes)=241442816
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=71
File Output Format Counters
Bytes Written=72
18/01/26 16:59:02 INFO mapreduce.Job: Job job_local2035507941_0001 running in uber mode : false
这里可以看到job ID中有local字样,说明是运行在本地模式下的。
本地模式下,mapreduce的输出是输出到本地。
[root@izuf61z1rt2fvuhr3u07s0z output2]# ls
part-r-00000 _SUCCESS
输出目录中有_SUCCESS文件说明JOB运行成功,part-r-00000是输出结果文件。
查询输出文件,可以看到,统计出了出现的单词数量
[root@izuf61z1rt2fvuhr3u07s0z output2]# vim part-r-00000
hadoop 3
hbase 1
hive 2
mapreduce 1
spark 2
sqoop 1
storm 1