Hadoop的環境安裝
阿新 • • 發佈:2019-01-09
1、首先是java環境安裝
tar -zxvf jdk1.7.0_79.tar.gz -C /opt/modules
2、配置環境變數
設定JDK的環境變數 JAVA_HOME。需要修改配置檔案/etc/profile,追加
export JAVA_HOME="/opt/modules/jdk1.7.0_79"
export PATH=$JAVA_HOME/bin:$PATH
修改完畢後,執行
source /etc/profile
3、安裝後再次執行 java –version,可以看見已經安裝完成。
[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安裝
1、下載安裝包
2、解壓安裝包
tar -xvf hadoop-2.9.0
3、確保JAVA_HOME環境變數已經配置好
[root@izuf61z1rt2fvuhr3u07s0z hadoop-2.9.0]# echo ${JAVA_HOME}
/opt/modules/jdk1.7.0_79
4、執行MapReduce程式,驗證
我們這裡用hadoop自帶的wordcount例子來在本地模式下測試跑mapreduce。
1、 準備mapreduce輸入檔案wc.input
modules
[[email protected] opt]# mkdir data
[[email protected] opt]# ls
data modules
[[email protected] opt]# cat /opt/data/wc.input
cat: /opt/data/wc.input: No such file or directory
[[email protected] opt]# ls
data modules
[[email protected] opt]# cd data/
[[email protected] data]# vim wc.input
//新增一下內容
hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop
~
2、 執行hadoop自帶的mapreduce Demo
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: [email protected]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字樣,說明是執行在本地模式下的。
3、 檢視輸出檔案
本地模式下,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