阿里云搭建Hadoop伪分布式集群
Hadoop介绍
Hadoop是存储和处理大数据的平台,具有可扩展性、经济性、弹性、可靠性四大特性,Hadoop充分利用了集群的特性进行高速的运算和存储,是如今大数据环境下一个很常用的分布式系统基础架构。
Hadoop伪分布式的安装
阿里云服务器类型:Ubuntu 16.04
伪分布式,也就是Hadoop Single Node Cluster,是只有一台服务器的Hadoop集群。安装步骤基本如下:
- 安装JDK
- 下载安装Hadoop
- 设置环境变量
- 设置Hadoop配置文件
- 初始化HDFS目录
- 启动Hadoop
- 打开Web界面查看
安装JDK
因为Hadoop是用Java进行开发的,所以安装运行Hadoop是需要Java环境的。
Linux下安装Java环境可以参考
https://blog.csdn.net/edc0228/article/details/71440242
安装完毕并进行环境变量的配置后可以打开终端,使用java -version命令来查看当前Java版本,来判断是否安装成功。图为已经安装成功。
下载安装Hadoop
- 来到Hadoop官网下载Hadoop,选择BinaryDownload下载方式,得到hadoop-x.x.x.tar.gz安装包(x.x.x是你下载的版本号)
https://hadoop.apache.org/releases.html - 对安装包进行解压,在终端输入命令
sudo tar -zxvf Hadoop-2.8.5.tar.gz
进行解压。
3. 更改文件路径,由于软件默认的安装路径是/usr/local,可在终端输入:
sudo mv hadoop-2.8.5 /usr/local/hadoop
将文件移动到/usr/local/hadoop。
设置Hadoop环境变量
在终端中输入
sudo gedit ~/.bashrc
进入bashrc文件进行环境变量的编辑,在文件末尾export变量,如图。
修改完后,在终端输入source命令让更改设置生效
source ~/.bashrc
修改Hadoop配置设置文件
- 设置hadoop-env.sh配置文件
进入/usr/local/hadoop/hadoop-2.8.5/etc/hadoop/hadoop-env.sh文件,可以通过gedit命令来进入。将文件中JAVA_HOME的设置由
export JAVA_HOME=${JAVA_HOME}
改为
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64//你的Java路径
编辑完成后保存关闭。
2. 修改core-site.xml
输入
sudo gedit /usr/local/hadoop/hadoop-2.8.5/etc/hadoop/core-site.xml
进入core-site.xml,设置HDFS的默认名字,设置如图。
3. 设置YARN-site.xml
在YARN-site.xml文件中含有MapReduce2相关的配置设置,其与core-site.xml处于相同的目录下。
对文件进行如下编辑:
编辑完成后保存退出。
4. 设置mapred-site.xml
该文件在同一目录下,是用于监控Map与Reduce程序的JobTracker任务分配情况以及TaskTracker任务运行情况的文件。
进行如下修改:
修改完后保存退出。
5. 设置hdfs-site.xml
用于设置HDFS分布式文件系统。
进行如下修改:
修改完成后保存退出。
创建并格式化HDFS目录
在终端中输入如下命令,创建namenode、datanode数据存储目录:
- 创建namenode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop-2.8.5/hadoop_data/hdfs/namenode
- 创建datanode数据存储目录
sudo mkdir -p /usr/local/hadoop/hadoop-2.8.5/hadoop_data/hdfs/datanode
- 更改Hadoop目录所有者(个人会有不同)
sudo chown root:root -R /usr/local/hadoop
- 格式化namenode
hadoop namenode -format
启动Hadoop
有两种方式来启动Hadoop
- 分别启动HDFS、YARN,在终端中分别使用start-dfs.sh、start-YARN.sh启动
- 同时启动HDFS、YARN,在终端中使用start-all.sh启动
注意:由于未进行SSH免密的操作,所以每一次进行启动操作都要输入一次用户密码。若想要SSH免密可自行百度。
启动过程如图:
启动后可通过jps命令查看是否启动成功
此为启动成功,也可通过web页面来查看
打开localhost:8088,出现如下界面则为成功。
若启动后jps只有一个jps进程开启,有可能是未识别主机名的问题。
可以打开/etc/hosts文件
加上主机名。
主机名是终端中root@后面的字符串。
参考书籍:Python+Spark2.0+Hadoop机器学习与大数据实战