观看此文章的基础为已经有一些虚拟机基础和Linux命令基础。
准备工作
所需工具:
链接:https://pan.baidu.com/s/1d6Go7c4iNHcoxLBfEjhbkg?pwd=84fr
提取码:84fr配置文件:
(天翼云盘)https://cloud.189.cn/t/nAzUV3Y7Rzaa
- 新建三个文件夹。最好在磁盘预留30G左右空间用于安装三台虚拟机。
- 在VMWare WorkStation Pro中先新建主节点(master)
最好是最小安装版本的
-
先确认虚拟机是否可以联网 ping www.baidu.com (正常安装后可以联网)
如图所示可以联网,然后可以ctrl+c停掉
-
安装网络工具:yum install net-tools(会出现y/n的选项 输入yes即可)
输入 ifconfig 出现ip地址即可
-
安装ssh服务:yum -y install openssh-server 、yum -y install openssh-clients
-
克隆master虚拟机(虚拟机右键管理有克隆选项,需要先把虚拟机关机) 克隆后的两台虚拟机分别为slave01 slave02
-
克隆完成后,将三台虚拟机进行开机登录操作,并输入 ifconfig 查看ip并单独记录下来
-
安装Xshell工具
-
使用Xshell去远程连接虚拟机(三台都要连接)
注意:从接下来的步骤开始,后续会有三个虚拟机都执行的命令,三个虚拟机都执行的命令我用加粗斜体表示。
- 设置Xshell公共执行命令窗口:
- 关闭防火墙(三台虚拟机都执行):systemctl stop firewalld.service
禁止firewall开机启动(三台虚拟机都执行):systemctl disable firewalld.service
- 分别修改主机名(三台虚拟机都执行):
vi /etc/hostname 将其修改成 master slave01 slave02 重启后输入hostname生效
- 配置 /etc/hosts文件,追加以下内容(三台虚拟机都执行) 命令为 vi /etc/hosts :
192.168.91.131 master ----->前面一定要是你的虚拟机名称所对应的ip地址
192.168.91.132 slave01
192.168.91.133 slave02
- 生成公钥和私钥并设置无密码登录
(1)生成公钥和私钥(三台虚拟机都执行) ssh-keygen -t rsa 一路回车即可(三次回车)
(2)将公钥追加到到authorized_keys中并赋予authorized_keys 600权限(三台虚拟机都执行):
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
(3)将master节点上的authoized_keys远程传输到slave01和slave02的~/.ssh/目录下(仅在master虚拟机执行)
scp /root/.ssh/authorized_keys root@slave01:/root/.ssh/
scp /root/.ssh/authorized_keys root@slave02:/root/.ssh/
(4)验证无密码登录 : ssh slave01 不需要输入密码即可登录 exit:退出 (master虚拟机执行)
- 配置Java环境(此步骤要在master虚拟机中执行)
(1)安装jdk和hadoop 使用 winscp 进行传输(master虚拟机执行)
(2)在master虚拟机上创建一个software目录 cd/opt/
mkdir software
(3)使用winscp连接到master虚拟机,将jdk和hadoop的压缩包传到/opt/software目录下
(4)在master中进行jdk的解压操作:tar zxvf jdk-8u241-linux-x64.tar.gz
修改文件名为: mv jdk1.8.0_241/ jdk1.8
(5)在master中配置jdk环境变量: vi /etc/profile 在末尾追加:
export JAVA_HOME=/opt/software/jdk1.8
export JRE_HOME=/opt/software/jdk1.8/jre
CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export HADOOP_HOME=/opt/software/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(6)在master中刷新环境变量 source /etc/profile
验证是否安装成功: java -version 、javac
16. 配置hadoop环境(此步骤要在master虚拟机中执行)
(1)解压hadoop:tar zxvf hadoop-2.6.5.tar.gz
(2)解压后在hadoop安装目录下创建tmp、logs、hdfs、hdfs/name、hdfs/data五个文件夹
(3)使用winscp软件进行配置文件的更改:配置文件都在hadoop2.6.5/etc/hadoop下(注意修改后保存)
① hadoop-env.sh
修改第25行的 ${JAVA_HOME}为自己的jdk安装目录(/opt/software/jdk1.8)
② yarn-env.sh
修改第23行, 解注释(export JAVA_HOME=/home/y/libexec/jdk1.6.0/)
修改为自己的jdk安装目录(/opt/software/jdk1.8)
③ slaves 将localhost 改为slave01 slave02
④ 配置 core-site.xml文件
⑤ 配置hdfs-site.xml文件
⑥ 配置yarn-site.xml文件
⑦ 在master命令行中执行以下命令(在opt/software/hadoop-2.6.5/etc/hadoop/目录下执行)
cd /opt/software/hadoop-2.6.5/etc/hadoop/
cp mapred-site.xml.template mapred-site.xml
⑧ 修改mapred-site.xml文件
(4)将master中配置好的环境通过scp命令传递给slave01和slave02
① 在master中将software文件夹拷贝到slave01和slave02的opt目录下
scp -r /opt/software/ root@slave01:/opt/
scp -r /opt/software/ root@slave02:/opt/
② 在master中将/etc/profile文件拷贝到slave01heslave02的/etc目录下
scp /etc/profile root@slave01:/etc/
scp /etc/profile root@slave02:/etc/
③ 刷新slave01和slave02中的环境变量 验证java和hadoop是否配置成功(可以三台虚拟机都执行)
source /etc/profile:刷新
java -version && java & javac:验证java环境变量
hadoop version:验证hadoop环境变量
(5)锁定时间同步(三台虚拟机都执行)
① 安装时间同步软件ntpdate
yum -y install ntp ntpdate
② 和网络时间进行同步
ntpdate cn.pool.ntp.org
③ 把时间写入硬件进行锁定
hwclock --systohc
(6)在master中进行格式化操作
① 进入hadoop-2.6.5/bin目录 cd /opt/software/hadoop-2.6.5/bin/
② 执行以下命令进行格式化: ./hdfs namenode -format
- 出现successfully formatted 表示成功
- 如果没有成功,做以下操作:
a. 检查并修改出错的配置文件(修改后一定要传给slave01和slave02一份)
将特定的配置文件传递给slave01或slave02:
scp /opt/software/hadoop-2.6.5/etc/hadoop/mapred-site.xml root@slave02:/opt/software/hadoop-2.6.5/etc/hadoop/
b. 删除三个主机上的hdfs中的name和data文件夹(三台虚拟机都执行)
cd /opt/software/hadoop-2.6.5
rm -rf hdfs/
c. 重新新建hdfs目录和hdfs/data 和hdfs/name 目录(三台虚拟机都执行)
mkdir /opt/software/hadoop-2.6.5/hdfs
mkdir /opt/software/hadoop-2.6.5/hdfs/data
mkdir /opt/software/hadoop-2.6.5/hdfs/name
d. 重新格式化(master中执行)
./hdfs namenode -format
- 启动集群服务(master中执行)
(1)启动hdfs服务:
① 进入到特定目录 cd /opt/software/hadoop-2.6.5/sbin/
② 启动hdfs服务 ./start-dfs.sh
③ 查看当前进程 jps
④ 出现以下结果代表集群启动成功:启动
master中输入jps出现 NameNode 和 SecondaryNameNode
slave01 和 slave02中注入jps出现 DataNode
(2)启动yarn服务
① 进入到特定目录 cd /opt/software/hadoop-2.6.5/sbin/
② 启动yarn服务 ./start-yarn.sh
③ 出现以下结果代表集群启动成功:启动
master中输入jps多了 ResourceManager
slave01 和 slave02中注入jps多了 NodeManager
(3) 同时启动hdfs和yarn服务:直接执行 hdfs-all.sh - 测试(访问相关网站)
(1)访问http://192.168.216.129:50070
(2)访问:http://192.168.216.129:8088
到此就全部结束了!
HDFS常用命令:
hdfs dfs -mkdir /test:在hdfs根目录创建一个名为test的空目录(hadoop fs -mkdir /test);
hdfs dfs -ls /:查看根目录文件;
hdfs dfs -put /opt/software/upload.txt /test:上传指定文件到hdfs指定目录;
hdfs dfs -get /test/upload.txt /opt/software/:下载hdfs中指定文件到本地的指定目录。
开启、关闭集群操作:
- 开启VMware
- 分别启动三台虚拟机
- 使用xshell连接虚拟机
- 开启集群 start-all.sh(只在master中执行)
…- 关闭集群 stop-all.sh(只在master中执行)