环境:centos 7
下载hadoop:
链接:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
下载后进行解压,并进行一系列修改
sudo tar -zxf ~/下载/hadoop-2.6.5.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.6.5/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop:hadoop ./hadoop # 修改文件权限
hadoop有三种模式:
本地模式
无需任何守护进程,所有程序都运行在一个jvm上执行,在独立模式下调试MR程序非常方便,所以该模式一般用在学习或者开发阶段使用。
伪分布模式
一台机器的各个进程上运行hadoop多个模块,但并不是真正的分布式,因为是一天机器。
完全分布模式
完全分布式模式才是生产环境采用的模式,Hadoop运行在服务器集群上,生产环境一般都会做HA,以实现高可用。
HA模式:
HA是指高可用,为了解决Hadoop单点故障问题,生产环境一般都做HA部署。
注意:所谓分布式要启动守护进程 ,即:使用分布式hadoop时,要先启动一些准备程序进程,然后才能使用比如start-dfs.sh start-yarn.sh。而本地模式不需要启动这些守护进程
四种模式的区别:
区分的依据是NameNode、DataNode、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器。
模式名称 | 各个模块占用的JVM(进程)数 | 各个模块运行在几个机器数 |
本地模式 | 1 | 1 |
伪分布模式 | N | 1 |
完全分布模式 | N | N |
HA完全分布模式 | NN | N |
四种模式的配置区别:
组件名称 | 属性名称 | 本地模式 | 伪分布模式 | 完全分布式 |
common | fs.defaultFs | file:///(默认) | hdfs://localhost/ | hdfs://nanmenode |
HDFS | dfs.replication | N/A(本地) | 1 | 3(默认) |
MapReduce | mapreduce.framework.name | local | yarn | yarn |
yarn |
yarn.resoucemanager.hostname
yarn.nodemanager.auxservice
|
N/A
N/A
| localhost mapreduce_shuffle | resoucemanager maperduce_shuffle |
首先进行本地模式的实现:
首先进入到hadoop的安装目录:
cd /usr/local/hadoop
然后查看hadoop的版本
./bin/hadoop version
显示如下:
Hadoop 2.6.5
Subversion https://github.com/apache/hadoop.git -r e8c9fe0b4c252caf2ebf1464220599650f119997
Compiled by sjlee on 2016-10-02T23:43Z
Compiled with protoc 2.5.0
From source with checksum f05c9fa095a395faa9db9f7ba5d754
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.6.5.jar
接着运行MapReduce程序,验证本地模式:
1.首先准备一个输入文件,文件里是文字,可以对其进行次数统计。
sudo vim /home/c/data.input
hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop
2.运行hadoop自带的mapreduce Demo
mapreduce模块在这里的作用就是统计data.input文件中各个单词出现的次数。输出为output
./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /home/c/data.input output
运行完后,检查output文件夹结果:
cd ./output
ls,有两个文件:
[c@localhost output]$ ls -l
总用量 4
-rw-r--r--. 1 c c 60 4月 11 22:03 part-r-00000
-rw-r--r--. 1 c c 0 4月 11 22:03 _SUCCESS
_success表示成功,统计结果方在part-r-00000文件中:
vim part-r-00000
hadoop 3
hbase 1
hive 2
mapreduce 1
spark 2
sqoop 1
storm 1
~
成功。