Hadoop部署模式有:本地模式、伪分布模式、完全分布式模式、HA完全分布式模式。
区分的依据是NameNode、DataNode、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器。
模式名称 | 各个模块占用的JVM进程数 | 各个模块运行在几个机器数上 |
---|---|---|
本地模式 | 1个 | 1个 |
伪分布式模式 | N个 | 1个 |
完全分布式模式 | N个 | N个 |
HA完全分布式 | N个 | N个 |
Hadoop本地模式安装
下载hadoop:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.0.0/hadoop-3.0.0.tar.gz
解压至~/Programs目录:
tar -xzf hadoop-3.0.0.tar.gz
- 创建并进入目录~/hadoop-workspace,准备mapreduce输入文件wc.input
hadoop mapreduce hive
hbase spark storm
sqoop hadoop hive
spark hadoop
- 运行hadoop自带的mapreduce Demo
~/Programs/hadoop-3.0.0/bin/hadoop jar ~/Programs/hadoop-3.0.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcount wc.input wc.ouput
- 查看输出文件:
➜ ls
_SUCCESS part-r-00000
_SUCCESS表示任务成功,part-r-00000为结果文件。
➜ cat part-r-00000
hadoop 3
hbase 1
hive 2
mapreduce 1
spark 2
sqoop 1
storm 1
Hadoop伪分布式模式安装
- 配置Hadoop环境变量
vim /etc/profile
# 追加如下两行配置
export HADOOP_HOME="~/Programs/hadoop-3.0.0"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
## 保存文件内容并source使其生效
source /etc/profile
- 配置core-site.xml
- HDFS的地址
- Hadoop临时目录
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>
</configuration>
- 配置hdfs-site.xml
dfs.replication配置的是HDFS存储时的备份数量
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- 格式化HDFS
~/Programs/hadoop-3.0.0/bin/hdfs namenode -format
格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中。
格式化后,查看core-site.xml里hadoop.tmp.dir指定的目录下是否有了dfs目录。如果有,则说明格式化成功。
- 查看NameNode格式化后的目录
➜ ll /opt/data/tmp/dfs/name/current
total 32
-rw-r--r-- 1 chuxing wheel 214B 3 22 21:28 VERSION
-rw-r--r-- 1 chuxing wheel 397B 3 22 21:28 fsimage_0