前面只是大概介绍了一下Hadoop,现在就开始搭建集群了。我们下尝试一下搭建一个最简单的集群。之后为什么要这样搭建会慢慢的分享,先要看一下效果吧!
一、Hadoop的三种运行模式(启动模式)1.1、单机模式(独立模式)(Local或Standalone Mode)
-默认情况下,Hadoop即处于该模式,用于开发和调式。
-不对配置文件进行修改。
-使用本地文件系统,而不是分布式文件系统。
-Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。
-用于对MapReduce程序的逻辑进行调试,确保程序的正确。
1.2、伪分布式模式(Pseudo-Distrubuted Mode)
-Hadoop的守护进程运行在本机机器,模拟一个小规模的集群
-在一台主机模拟多主机。
-Hadoop启动NameNode、DataNode、JobTracker、TaskTracker这些守护进程都在同一台机器上运行,是相互独立的Java进程。
-在这种模式下,Hadoop使用的是分布式文件系统,各个作业也是由JobTraker服务,来管理的独立进程。在单机模式之上增加了代码调试功能,允许检查内存使用情况,HDFS输入输出,
以及其他的守护进程交互。类似于完全分布式模式,因此,这种模式常用来开发测试Hadoop程序的执行是否正确。
-修改3个配置文件:core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)、hdfs-site.xml(配置HDFS集群的工作属性)、mapred-site.xml(配置MapReduce集群的属性)
-格式化文件系统
1.3、全分布式集群模式(Full-Distributed Mode)
-Hadoop的守护进程运行在一个集群上
-Hadoop的守护进程运行在由多台主机搭建的集群上,是真正的生产环境。
-在所有的主机上安装JDK和Hadoop,组成相互连通的网络。
-在主机间设置SSH免密码登录,把各从节点生成的公钥添加到主节点的信任列表。
-修改3个配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml,指定NameNode和JobTraker的位置和端口,设置文件的副本等参数
-格式化文件系统
环境:在Ubuntu17.04
jdk1.8.0_131
hadoop 2.8.1
2.1、能够正常运行的Ubuntu操作系统
在Ubuntu下,软件安装到/opt下,当前正在使用的用户,对于opt目录需要有读写权限:
1)将opt的权限给为777(漏洞文件),不推荐在生产环境中使用。但是可以在学习和调试环境中使用。
2)sudo
在启动Hadoop的各个守护进程的时候,需要使用sudo。
在管理Hadoop的时候,实际上由不同的用户启动不同集群的守护进程。
统一使用当前的用户管理所有集群。
3)该目录的所有者设置为当前用户
2.2、安装JDK,并配置环境变量
1)将jdk安装包放在家目录下
2)解压到opt目录下
sudo tar zxvf jdk-8u131-linux-x64.tar.gz -C /opt
此时在/opt目录下:会有一个jdk1.8.0_131
3)创建软链接
sudo ln -snf /opt/jdk1.8.0_131 /opt/jdk
注意:创建软连接的目的是为了,我们在做项目的时候,可能会用到不同的jdk版本,这是要换软件的话,只需要修改软链接就可以了。而不用修改配置文件。
4)配置环境变量
局部环境变量:~/.bashrc
全局环境变量:/etc/profile
export JAVA_HOME=/opt/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
source 相关文件(更新配置文件)
5)查看是否安装成功
java、javac、java -version
三、搭建伪分布式集群3.1、安装hadoop
1)解压hadoop安装包到opt目录下
sudo tar zxvf hadoop-2.8.1.tar.gz -C /opt
2)创建软链接
ln -snf /opt/hadoop-2.8.1 /opt/hadoop
3)配置环境变量