1. 程式人生 > >Hadoop的環境安裝

Hadoop的環境安裝

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