Hadoop 2.9.2 分布式集群环境搭建
一、所需软件及工具
-
VMware : https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
-
Ubuntu iso镜像文件 (这里笔者使用的是 18LTS版本):http://mirrors.aliyun.com/ubuntu-releases/18.04/
-
所需软件压缩包
-
hadoop-2.9.2.tar.gz:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.9.2/
-
jdk-8u261-linux-x64.tar.gz:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html (下载 8 版本 jdk 需要注册登录,最新版 jdk 则不用)
-
-
(可选)Xshell & XFtp:复制粘贴命令更方便
二、搭建集群所需操作
1、先创建一台 Ubuntu 虚拟机及配置
注意:
- 网络设置选择 桥接模式
- 语言最好还是选 English
VMware安装操作略。。。
进去系统后,修改几个配置
-
更改软件更新源:按下 Win键,输入 software,第一个便是
-
选择 Other
-
找到 aliyun的源
-
Choose 完,Close 即可
然后打开命令行,快捷键 Ctrl+Shift+T,输入命令
sudo apt-get update
sudo apt-get upgrade
遇到 询问问题 按 y 即可
2、搭建集群所需操作
提示:
接下来笔者的操作将会在 Xshell 中对虚拟机进行操作,和在虚拟机的命令行中操作并无二异
可以自行搜索 Xshell如何连接虚拟机进行操作
2.1、集群机器配置
第一个创建的虚拟机相当于 Hadoop集群中的 NameNode
节点机器,负责协调集群中的数据存储,我们就给它起一个霸气的名字,叫做 master
# 首先安装一下 vim编辑器(编辑器的神!!!)
sudo apt-get install vim
# 修改主机名,用于区分 NameNode 和 DataNode
sudo vim /etc/hostname
提示:
vim 操作和平时我们在 windows 用的文本编辑器不同,需要知道一些命令才好编辑文件
用另一种方式也可以编辑文件,用 Ubuntu自带的 gedit编辑器**(要在虚拟机中才可以使用)**
sudo gedit /etc/hostname
操作就是一般的文本编辑器的操作
2.2、JDK和Hadoop安装配置
注意:
笔者使用 Xftp 用作文件传输
其他方式还有:给虚拟机安装 vmtools,然后在 windows 上下载的文件就可以直接拖进去 虚拟机了(教程略。。。)
安装JDK、Hadoop
把之前准备的文件通过 Xftp工具,拖拖拖进去 虚拟机的 /usr/local
目录下
# 拖不进去要改文件夹权限
sudo chmod 777 /usr/local
进行解压、重命名、配置环境变量操作
# 进入 /usr/local 目录下解压文件
cd /usr/local
tar -zxvf jdk-8u261-linux-x64.tar.gz
mv jdk1.8.0_261/ java
tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 hadoop
sudo chown -R hadoop ./hadoop
ls
编辑~/.bashrc文件,添加如下内容:
sudo vim ~/.bashrc
# 添加的内容,加在开头结尾都行
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
java -version
hadoop version
如下图代表成功:
Hadoop集群配置
现在开始配置集群,要整三台虚拟机,我们将 master 虚拟机克隆三次即可(注意,要先关机)
注意:下图
完成
把三台虚拟机都起起来,接下来要**配置 静态 ip**
参考:https://blog.csdn.net/u014454538/article/details/88646689
配置主机名和各个主机的 hosts
下图提到的主机ip 注意要,根据**自己虚拟机ip的情况填写**
配置ssh无密码登录本机和访问集群机器
执行完上面的操作之后
ssh slave01
ssh slave02
# 过程中不需要输入密码,否则,则代表配置失败
修改master主机修改Hadoop如下配置文件,这些配置文件都位于 /usr/local/hadoop/etc/hadoop
目录下。
修改 slaves:
这里把DataNode的主机名写入该文件,每行一个。这里让 master
节点主机仅作为 NameNode
使用。
slave01
slave02
修改 core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
修改hdfs-site.xml
:
<configuration>
<property>
<!-- 副本的数量:伪分布式设置为 1;分布式设置为随便,最少为1-->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<!-- 表示本地磁盘目录,是存储fsimage文件的地方 -->
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<!-- 表示本地磁盘目录,HDFS数据存放block的地方-->
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
修改 mapred-site.xml
(复制 mapred-site.xml.template
,再修改文件名)
mv mapred-site.xml.template mapred-site.xml
<!--文件内容-->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
配置好后,将 master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 master 节点主机上执行:
cd /usr/local/
rm -rf ./hadoop/tmp # 删除临时文件
rm -rf ./hadoop/logs/* # 删除日志文件
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz slave01:/home/hadoop
scp ./hadoop.master.tar.gz slave02:/home/hadoop
在slave01,slave02节点上执行:
sudo rm -rf /usr/local/hadoop/
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop
启动hadoop集群
在master主机上执行如下命令:
cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh
若遇到下图错误:
1
需要将 /usr/local/hadoop/etc/hadoop中的
hadoop-env.sh
文件中的export JAVA_HOME=${JAVA_HOME} # 改成 ---> export JAVA_HOME=/usr/local/java # 自己安装的 jdk 绝对路径,三个主机都要
运行后,在master,slave01,slave02运行jps命令,查看:
jps
在 Windows 的主机上访问:
-
http://192.168.1.80:50070/dfshealth.html#tab-datanode
-
http://192.168.1.80:8088/
三、完成!!
r/local/java # 自己安装的 jdk 绝对路径,三个主机都要
运行后,在master,slave01,slave02运行jps命令,查看:
jps
[外链图片转存中…(img-XoTTz6dQ-1600769082212)]
在 Windows 的主机上访问:
-
http://192.168.1.80:50070/dfshealth.html#tab-datanode
[外链图片转存中…(img-NjNCwff2-1600769082212)]
-
http://192.168.1.80:8088/
[外链图片转存中…(img-1QIgJAQ8-1600769082213)]
三、完成!!
参考教材链接:http://dblab.xmu.edu.cn/blog/1177-2/ (基础与 ubuntu 14 和 hadoop 2.7)