阿里云搭建完全分布式
文章目录
所有安装工具在网盘,包括安装包,远程:xshell,上传文件:XSell)
网盘链接:https://pan.baidu.com/s/1TSUSeuL3XO6F-1qcJmvJrQ
提取码:68ks
1. 三台改主机名
直接在控制台上修改,用XSell连接后,没显示出来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tuCN9MdA-1654220502745)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211227212149572.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6hvfz3ZX-1654220502746)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211227212120616.png)]
需要用命令行的方式修改,再重新连接就可以看到修改成功了
使用 hostname 可以查看主机名
修改主机名:hostnamectl set-hostname 修改后的主机名
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFXZFzUt-1654220502747)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211227213359751.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xcS1ugeK-1654220502748)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211227213411947.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XWHWg1vK-1654220502748)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211227213441634.png)]
2.三台修改hosts文件
vim /etc/hosts
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w0Np2HAr-1654220502748)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211229005422267.png)]
测试三台机器都可以 ping 通
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PSFZLNJv-1654220502750)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211228133233872.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Embjl1dO-1654220502750)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211228133257093.png)]
ping不通
逻辑:安全组-专有网络-云企业网-云企业授权
操作(阿里云控制台中):
①Slave1、slave2云企业网跨账号授权给master
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BqHBbY6a-1654220502750)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230005739414.png)]
②master创建专有网络,绑定云企业网,云企业网加入slave1、slave2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LslqwFNd-1654220502751)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230005749898.png)]
③专有网络再加入安全组
以上操作细节均在阿里云帮助文档中有体现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ELb4CXky-1654220502752)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211229005400971.png)]
按 Ctrl + C 键可以退出 ping
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KndUPrqX-1654220502752)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211228133327467.png)]
使用 ufw 命令查看防火墙状态,可以看到阿里云原本防火墙是关闭的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wCRPJZah-1654220502753)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211227222424487.png)]
若没有关闭,可使用 ufw disable 命令关闭防火墙
4. 配置 ssh 免密登录
注意我们这里只用配置master到集群三台机器免密。如果以后需要集群三台互相免密,其余机器也要照这里master办理。
4.1 在 master 生成公钥
cd ~/.ssh #进入/root/.ssh
rm ./id_rsa**#* 删除之前生成的公匙(如果已经存在)
ssh-keygen -t rsa*#* 执行该命令后,遇到提示信息,一直按回车
cat ./id_rsa.pub >> ./authorized_keys
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1WG5t2sV-1654220502753)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211227232406785.png)]
使用 ssh master来验证一下可对本机免密登录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ML5P7rAu-1654220502754)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211228123548993.png)]
4.2 将 pub 文件发往slave1, slave2
注意这里直接发前提是,在 slave1 和 slave2 上已有/root/.ssh,否则要去两个机器的/root下先mkdir .ssh。一般在/root下已有.ssh,当前最好先去确定下。
scp ~/.ssh/id_rsa.pub root@slave1:/root/.ssh/
scp ~/.ssh/id_rsa.pub root@slave2:/root/.ssh/
4.3 slave1上加入pub到认证密钥
进入/root/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub # 用完以后就可以删掉
master上ssh slave1验证可以免密了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yDqpaP7v-1654220502754)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211229010356195.png)]
4.4 slave2上加入pub到认证密钥
进入/root/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
rm id_rsa.pub # 用完以后就可以删掉
master上ssh slave2验证可以免密了
5. 安装JDK
以下操作为先在master上操作,然后远程复制到slave1和slave2。
以下都在master:
**先用 Xftp *把jdk安装包放到master,先建立/usr/java
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kizevLv3-1654220502755)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211229182713964.png)]
在master上mkdir -p /usr/java 建立 java 目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZqW4aAo-1654220502755)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211229182824119.png)]
然后把 jdk-8u171-linux-x64.tar 放到/usr/java下(直接拖动文件到 java 目录),传输大概用时一分半。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jk3VEs0b-1654220502756)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230000600024.png)]
cd /usr/java
tar -zxvf jdk-8u171-linux-x64.tar.gz -C /usr/java/
rm -rf /usr/java/jdk-8u171-linux-x64.tar.gz
修改环境变量:vim /etc/profile
添加内容如下:
export JAVA_HOME=/usr/java/jdk1.8.0_171
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOMECLASSPATH
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6HJG3Bwy-1654220502756)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230001319631.png)]
生效环境变量:source /etc/profile
查看java版本:java -version
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ALLizFJ-1654220502757)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230001508286.png)]
将JDK复制到slave1和slave2中
scp -r /usr/java root@slave1:/usr/
scp -r /usr/java root@slave2:/usr/
接下来在slave1 slave2上:
去 slave1 和 slave2 上配置java的环境变量(即/etc/profile),并使环境变量生效,并 java -version验证。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-11NtqLEp-1654220502758)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230002650007.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ODYIrtBs-1654220502759)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230002958774.png)]
6. 安装 zookeeper
在master上执行,然后远程复制到其他节点。
以下在master上:
6.1 工作目录
mkdir -p /usr/zookeeper
cd /usr/zookeeper
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sYRODznk-1654220502759)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230003155491.png)]
然后用Xftp 把zookeeper 安装包放到master /usr/zookeeper
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-43NKoCEA-1654220502760)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230003425309.png)]
传输大概用了15秒
tar -zxvf /usr/zookeeper/zookeeper-3.4.10.tar.gz -C /usr/zookeeper
rm -rf /usr/zookeeper/zookeeper-3.4.10.tar.gz
在zookeeper的目录中,创建配置中所需的zkdata和zkdatalog两个文件夹。
cd /usr/zookeeper/zookeeper-3.4.10
mkdir zkdata
mkdir zkdatalog
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YqUZv4t3-1654220502760)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230003912800.png)]
6.2 配置文件zoo.cfg
进入zookeeper配置文件夹conf,将zoo_sample.cfg文件拷贝一份命名为zoo.cfg,Zookeeper 在启动时会找这个文件作为默认配置文件。
cd /usr/zookeeper/zookeeper-3.4.10/conf/
mv zoo_sample.cfg zoo.cfg
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jSwwmXLw-1654220502760)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230004952934.png)]
对zoo.cfg文件配置如下:
vim zoo.cfg
修改如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/zookeeper-3.4.10/zkdata # 增加内容
clientPort=2181
# 以下都是增加内容
dataLogDir=/usr/zookeeper/zookeeper-3.4.10/zkdatalog
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R5p7Ge75-1654220502761)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230005435140.png)]
6.3 进入zkdata文件夹
进入zkdata文件夹,创建文件myid,用于表示是几号服务器。master主机中,设置服务器id为1。(集群中设置master为1号服务器,slave1为2号服务器,slave2为3号服务器)
cd /usr/zookeeper/zookeeper-3.4.10/zkdata
vim myid
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZSATtUcE-1654220502761)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230010258661.png)]
6.4 远程复制分发安装文件
以上已经在主节点master上配置完成ZooKeeper,现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下:
scp -r /usr/zookeeper root@slave1:/usr/
scp -r /usr/zookeeper root@slave2:/usr/
以下5步在slave1 slave2做:
6.5设置 myid
设置myid。在我们配置的dataDir指定的目录下面,创建一个myid文件,里面内容为一个数字,用来标识当前主机,conf/zoo.cfg文件中配置的server.X中X为什么数字,则myid文件中就输入这个数字。(在slave1和slave2中执行)
实验中设置slave1中为2;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-miLh1qpo-1654220502762)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230011150677.png)]
slave2中为3:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKIuUpds-1654220502762)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230011603406.png)]
6.6 以下在三台上做
修改/etc/profile文件,配置zookeeper环境变量。
vim /etc/profile
#set zookeeper environment
export ZOOKEEPER_HOME=/usr/zookeeper/zookeeper-3.4.10 #注意这一句一定手敲,避免source出错
export PATH=$PATH:$ZOOKEEPER_HOME/bin #这一也推荐手敲,避免source出错
生效环境变量:source /etc/profile
6.7 启动ZooKeeper集群
在ZooKeeper集群的每个结点上,执行启动ZooKeeper服务的脚本。注意在zookeeper*目录下:(三台机器都执行)
pwd 后目录是 /usr/zookeeper/zookeeper-3.4.10 才能直接执行下面:
先三台都开启服务:bin/zkServer.sh start
再三台都查看状态:bin/zkServer.sh status
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XWyuTG4t-1654220502762)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230195605290.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N8PvmqCE-1654220502763)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230195631181.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KUKcyUCR-1654220502763)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230195654984.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wxG0rCyD-1654220502764)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230195714977.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZG0hDqC9-1654220502764)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230195730726.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WrDJUPzy-1654220502765)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230195745115.png)]
通过上面状态查询结果可见,一个节点是Leader,其余的结点是Follower。
如果出现一下错误(通过 zookeeper.out 查看错误信息)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C5DfoG75-1654220502765)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230195840567.png)]
解决方法:
控制台打开端口
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LjGF2AQC-1654220502766)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230200020540.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jiGZAbpH-1654220502766)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230200031511.png)]
至此,zookeeper安装成功。
7 安装 hadoop
hadoop 安装同样在主节点master上进行配置操作,然后将文件复制到到子节点slave1和slave2。
7.1 解压安装包
用 Xftp 传送hadoop压缩包,创建对应工作目录 /usr/hadoop,解压 hadoop 到相应目录,删除相应软件包。
mkdir -p /usr/hadoop
cd /usr/hadoop
Xftp 传输hadoop,大约1分钟
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rdu6G7rW-1654220502766)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230221547179.png)]
添加 hadoop 环境变量
vim /etc/profile
添加如下内容:
#HADOOP
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
export CLASSPATH=$CLASSPATH:$HADOOP_HOME/lib
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使用以下命令使profile生效:
source /etc/profile
7.2 配置hadoop各组件
hadoop的各个组件的都是使用XML进行配置,这些文件存放在hadoop的etc/hadoop目录下。
Common组件 | core-site.xml |
---|---|
HDFS 组件 | hdfs-site.xml |
MapReduce 组件 | mapred-site.xml |
YARN 组件 | yarn-site.xml |
-
进入hadoop配置目录,编辑hadoop-env.sh环境配置文件。
cd $HADOOP_HOME/etc/hadoop
vim hadoop-env.sh
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-01cVBB5r-1654220502767)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230224028156.png)]
vim yarn-env.sh
输入以下内容,修改java环境变量:
export JAVA_HOME=/usr/java/jdk1.8.0_171
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KEoLrz0d-1654220502767)(C:\Users\WJ\AppData\Roaming\Typora\typora-user-images\image-20211230224213781.png)]
-
编辑core-site.xml文件。
vim core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-2.7.3/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size