- 首先安装三个虚拟机:
这里我安装的是CentOS-7-x86_64-DVD-2009.iso
主机安装时最好安装一个桌面,后面两个从机选择最小安装即可。
- 检查网络是否通畅:
ping www.baidu.com
检查网络是为了检查之后网络配置之后不是因为安装引起的。【这叫谨慎】
- 配置静态网络:
其实就是为了让虚拟机IP不再改变,这样就可以远程SSH登录,这个配置完后,之后操作就比较简单,当然我是这样觉得的。
之后我一般都是用finalshell 【一个远程登录虚拟机的软件】
进行远程登录然后直接操作配置文件,不使用命令行的方式配置。
//注意最后的ifcfg-ens33可能会不一样
cd /etc/sysconfig/network-scripts/
ls
//找到一个ifcfg-ensXX的文件,我的是ifcfg-ens33
vim ifcfg-ens33
//进入后就可以开始配置了
配置静态网络,主要有打开静态配置、设置IP、设置网关、设置子网掩码、设置DNS服务器。
具体的网关和网段需要查看你虚拟机的网络配置。
选择NET模式,点击NET设置:
这里我根据我的进行配置,一般子网IP和网关前面都是相同的,我们设置IP时前三位也要与其相同,最后一位不同就行。
这里前面两个市打开静态网络配置,后面依次是IP、子网掩码、网关、两个DNS服务器。
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.208.144
NETMASK=255.255.255.0
GATEWAY=192.168.208.2
DNS1=180.76.76.76
DNS2=8.8.8.8
使用ping检查网络是否通了,之后就可以使用 finalshell 进行SSH连接了,当然其他的shell工具也行。
如果没有那么就只能使用命令行了,或者直接使用桌面系统进行配置,可以安装一个 gedit 这样可能快一点,至少比vim好用。
但是之后必须用到传输文件上去,我的建议是安装finalShell,当然其也有上传文件的,具体安装方法直接可以找一下
sudo apt-get install gedit
- 为各个主机起别名:
每个虚拟机执行一句,这样我们相当于给他们每个人取了一个名字。
hostnamectl set-hostname master
hostnamectl set-hostname mach1
hostnamectl set-hostname mach2
- hosts文件配置:
hosts文件在etc文件夹下面,加上这个是为了告诉他这是其他主机的地址,这样之后才能进行互通。
192.168.208.200 master
192.168.208.144 mach1
192.168.208.188 mach2
- 关闭防火墙:
命令行执行,最后一个是查看防火墙状态,如果是关闭就行了。关闭防火墙后面各主机之间才能相互互通。
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
- 测试是否可以进行SSH登录:
命令行执行,相互测试是否可以进行SSH登录,之后就要进行免密登录,这次登录可能会要输入密码。
ssh mach1
ssh mach2
- 设置免密登录:
命令行执行,首先要获取秘钥,注意秘钥生成的目录,之后复制,然后测试是否还需要密码。
//获取秘钥
ssh-keygen -b 1024 -t rsa
//直接复制秘钥
ssh-copy-id mach1
ssh-copy-id mach2
ssh-copy-id master
- JDK安装:
JDK安装主要就是解压到一个目录下,记住这个目录,然后配置Path就行。
如何上传JDK这个的话,就需要安装Shell工具了
关于资源我上传不上去,大家可以直接找或者私聊,虽然我不一定回,但看到了看到会回。
tar -xzvf jdk-8u171-linux-x64.tar.gz
//配置在ETC这个目录下,etc就是专门配置环境的,你可以一找到这个目录直接修改,比命令行快
vi /etc/profile
//加上这个,注意要写你自己的java目录位置
export JAVA_HOME=/Java/jdk1.8.0_171
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:$JAVA_HOME/bin:$PATN
//重新加载配置
source .bash_profile
使用 java -version 测试是否安装成功。
如果命令不使用了:
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
- hadoop解压:
hadoop可以直接去国内镜像下载:清华镜像 我使用的是3.3.4版本。
tar -xzvf hadoop-3.3.4.tar.gz
同样我们需要配置一下hadoop的Path,基本与JDK一样。
//配置在ETC这个目录下,etc就是专门配置环境的,你可以一找到这个目录直接修改,比命令行快
vi /etc/profile
//tip:在文件末尾追加
export HADOOP_HOME=/root/hadoop/hadoop-3.3.4
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:$HADOOP_HOME/bin:$PATH
//重新加载配置
source .bash_profile
使用 hadoop version 测试是否安装成功。
- 配置hadoop环境:
几乎所有的文件都在 /root/hadoop/hadoop-3.3.4/etc/hadoop/ 目录下:
core-site.xml
<configuration>
<!-- 设置主机名 -->
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.208.200:9000</value>
</property>
<!-- 这个value是个目录需要创建,可以不和我一样,但必须要有这个目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/temp</value>
</property>
<!-- 设置静态用户 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 关闭dfs权限检查 -->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 对应目录都要创建,可以不和我一样,但必须要有这个目录 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hadoop/data</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hadoop/name</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
workers
master
mach1
mach2
这个作用和之前取别名是一样的。
- 直接复制到其他主机:
注意我这里的hadoop是在 /root/hadoop 目录下的:
scp -r /root/hadoop mach1:~/
scp -r /root/hadoop mach2:~/
- 格式化节点数据:
hdfs namenode -format
- 启动hadoop:
//首先进入hadoop目录
cd /root/hadoop/hadoop-3.3.4
//启动
sbin/start-all.sh
//停止
sbin/stop-all.sh
之后使用 JPS命令查看 如果有以下节点代表成功。
4050 Jps
3956 NodeManager
3653 SecondaryNameNode
3414 NameNode
3852 ResourceManager
3518 DataNode
- Windows网站访问:
http://{master主机IP}:9870/