目录
我这里准备了三台虚拟机(hadoop4,hadoop5,hadoop6)来搭建集群,全部打开然后用xshell连接上。其中
1.1搭配前的准备
1.1.1下载并安装VIM脚本编辑(3台虚拟机)
vim脚本编辑有助于我们去看命令行,其中它有很多高光设置什么的
yum install -y vim #使用yum安装vim -y意思时弹出问题直接默认yes
yum install vim #也行
1.1.2关闭防火墙(3台虚拟机)
在我们配置好虚拟NAT模式之后,我们首先要做的就是关闭防火墙的设置
systemctl status firewalld.service #查看防火墙的状态
systemctl stop firewalld.service #停止防火墙服务
systemctl disable firewalld.service #永久的禁止防火墙
1.1.3更改主机名字并增加身份识别(3台虚拟机)
vim /etc/hostname #这是修改单个虚拟机的名称,进入之后删除里面的代码,然后添加自己主机名,例如我的是hadoop4机器就写hadoop4
vim /etc/hosts #这是增加映射,进入之后添加如下内容 IP要和主机名对应
虚拟机IP地址+空格+hadoop4
虚拟机IP地址+空格+hadoop5
虚拟机IP地址+空格+hadoop6
1.1.4免密登录(3台虚拟机)
这不是为了各个虚拟机之间的通讯的时候不用输入密码
ssh-keygen -t rsa #此命令在根目录下进行,一路按Enter三次就好
添加每个机器的公匙
ssh-copy-id hadoop4 #主机名可以换成IP地址也可以不换只要映射配置正确
ssh-copy-id hadoop5
ssh-copy-id hadoop6
做完上述4部操作之后重启虚拟机 reboot 然后就会发现主机名已经更改了
1.2如何使用Xshell和Xftp
1.2.1 xshell的应用
开启主机之后,打开xshell
然后点击文件--》新建
然后输入你要的明明和主机IP,点击链接
输入账号和密码之后点击确定
1.2.2xftp的应用
在xshell中点击绿色的图标
然后进入你的虚拟机对应的目录,直接把windows中文件进行拖拽即可
1.3安装并且配置hadoop
以下操作先在一台主机上操作完成之后,直接复制给另外两台虚拟机就好。下列安装包都在你的windos系统里面,你在shell中打开xftp就可以传输了,就跟U盘一样。
1.3.1开始安装hadoop和jdk
进入三台虚拟机,创建hadoop文件夹和java文件夹
mkdir /usr/local/hadoop
mkdir /usr/local/java
创建完成之后,进入一台虚拟机的hadoop文件夹(我进入的是hadoop5)然后解压文件。安装jdk也是同样的操作
tar -zxvf “hadoop包名” #解压hadoop压缩文件
rm -rf "hadoop包名" #安装完成之后删除安装包,别tab然后把安装的文件给删除了
tar -zxvf "jdk包名"
rm -rf "jdk包名"
1.3.2配置环境变量
安装之后就得配置环境变量啊
vim /etc/profile #编辑环境变量文件
在文件最后添加
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.9.2
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#以后我们安装kafka也好hbase也好 都是这样添加环境变量的
1.3.3配置hadoop文件
1.配置core-site.xml
vim /usr/local/hadoop/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
#进入之后最下面会有两个标签,在两个标签之间添加
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop5:9000</value> #这一行的意思是指定谁是主机master我这里用的是hadoop5
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name> #存储临时文件夹的位置
<value>/usr/local/hadoop/hadoop-2.9.2/tmp</value>
</property>
2.配置hdfs-site文件
vim /usr/local/hadoop/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
#进入之后最下面两个标签之间添加下列代码
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value> #集群虚拟机的个数
</property>
<property>
<name>dfs.namenode.secondary.http-address</name> #谁来承载namenode,一般来说别和主机一块
<value>hadoop4:50090</value> #要是写主机,主机负载挺大的
</property>
<!--获取文件夹写入权限-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
3.配置hadoop-env.sh文件
修改java路径
以上的操作都是在一台主机(hadoop5)里面完成的,所以我们接下来就要将我们做好的东西复制给我们的其他虚拟机了(hadoop4,hadoop6)
1.3.4复制文件给其他主机
#进入hadoop目录下
cd /usr/local/hadoop
#开始复制hadoop
scp -r hadoop-2.9.2 hadoop4:$PWD
scp -r hadoop-2.9.2 hadoop6:$PWD
#进入java目录下
cd /usr/local/java
#开始复制java
scp -r jdk1.8.0_211 hadoop4:$PWD
scp -r jdk1.8.0_211 hadoop6:$PWD
#进入根目录
cd /etc
#开始复制配置文件
scp -r profile hadoop4:$PWD
scp -r profile hadoop6:$PWD
然后三台虚拟机都要生效环境变量
source /etc/profile
1.3.5格式化hadoop并且启动
#格式化Hadoop,只在主机进行哦
hadoop namenode -format
#在主机启动hadoop
start-dfs.sh
#启动完成后输入jps在3个虚拟机命令中
这时,三个虚拟机应该都有datanode服务
主机多namenode服务
而刚才配置的文件中secondaynode 应该在hadoop4中
此时进入主机的 IP:50070 就可以看到搭建好的集群了。