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、下载安装包

下载路径:
http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/

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
[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
~
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: 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字样,说明是运行在本地模式下的。

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

你可能感兴趣的:(Hadoop)