镜像文件:CentOS-7-x86_64-Minimal-2009.iso
百度网盘链接:https://pan.baidu.com/s/1DWlPCRX5HlmKAqwMIRW4_w
提取码:lo0a
Hadoop:hadoop-2.9.2.tar.gz
百度网盘链接:https://pan.baidu.com/s/1T140oYVnLOUkP-cqMBvIIQ
提取码:96as
JDK:jdk-8u201-linux-x64.tar.gz
百度网盘链接:https://pan.baidu.com/s/1NDjAvVIP0BhfNflaLeA_fw
提取码:fpc5
HBase:hbase-2.2.6-bin.tar.gz
百度网盘链接:https://pan.baidu.com/s/1FB3ETvheJI66fwUwkS4jnQ
提取码:nty9
在Win10中安装VMware Workstation Pro(以下简称VM)。
在VM中新建1台虚拟机(建议配置2核CPU,4G内存),选择下载的CentOS7镜像文件进行安装,安装时,软件选择为默认的“最小安装”,系统安装位置为默认的“自动分区”(需要点击确认),网络设置要将默认的“未连接”改为“打开”(记录下IP地址和网关信息),网络选择NAT模式,修改电脑主机名为hadoop01(记得点击应用)。
具体安装步骤:(若熟悉虚拟机创建的同学可以跳过此步)
按照以上方法再搭建hadoop02、hadoop03、hadoop04和hadoop05(此处不克隆的原因是克隆的ip地址一样,主机名也一样,虽然修改即可,但为了防止后续出错因此没有选择克隆)
在Win10中安装XShell和XFtp
免费版XShell和XFtp下载网址
注意:后续对CentOS的操作都通过Xshell,使用root用户执行!
编辑Win10的hosts文件
(所在目录为C:\Windows\System32\drivers\etc,建议使用Notepad++或Sublime Text软件编辑该文件,不要使用win10自带的记事本)
在hosts文件中增加以下内容(实际IP地址以安装CentOS时记录的地址为准):
192.168.76.140 hadoop01
192.168.76.141 hadoop02
192.168.76.142 hadoop03
192.168.76.143 hadoop04
192.168.76.144 hadoop05
此次用三台虚拟机来搭建完全分布式。hadoop01是主节点,运行进程NameNode、SecondaryNameNode、ResourceManager;hadoop02、hadoop03、hadoop04、hadoop05是从节点,运行进程DataNode、NodeManager。
在hadp01虚拟机上设置静态网卡,操作步骤如下:
查看本机IP:ip addr
切换工作目录:cd /etc/sysconfig/network-scripts
编辑网卡文件:vi ifcfg-ens33
注:vi的基本用法
(打开文件后,按下i键,进入insert模式,开始编辑
编辑完成后,按下ESC,输入:wq,即可保存并退出,输入:q,表示不保存并退出)
将BOOTPROTO的值修改为static(默认是dhcp)
在文件末尾增加以下内容(注意:IPADDR和GATEWAY的值要与本机实际数据保持一致)
IPADDR=192.168.76.140
NETMASK=255.255.255.0
GATEWAY=192.168.76.2
DNS1=114.114.114.114
DNS2=119.29.29.29
保存后,执行systemctl restart network
,即可重启网卡,使设置生效
在虚拟机上编辑hosts文件vi /etc/hosts
在虚拟机的hosts文件中增加以下内容
192.168.76.140 hadoop01
192.168.76.141 hadoop02
192.168.76.142 hadoop03
192.168.76.143 hadoop04
192.168.76.144 hadoop05
在虚拟机上关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机时启动。
systemctl disable firewalld.service
在虚拟机上关闭Selinux
vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
执行reboot
重启CentOS系统,使设置生效
在hadoop01上执行ssh-keygen -t rsa
生成公私钥,按三次回车键,执行完毕后,将在用户主目录下生成.ssh文件夹,其中包括公私钥文件。
执行命令ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop01
把公钥发送到hadoop01、hadoop02、hadoop03、hadoop04和hadoop05
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop02
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop03
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop04
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop05
执行过程中提示Are you sure you want to continue connecting (yes/no)?时,输入yes
执行过程中根据提示输入root用户密码(密码输入时没有显示)
在Win10中下载jdk-8u201-linux-x64.tar.gz和hadoop-2.9.2.tar.gz
在hadoop01上创建目录用于保存安装文件mkdir -p /home/root/apps
通过Xftp软件,将保存在Win10中的jdk-8u201-linux-x64.tar.gz和hadoop-2.9.2.tar.gz传递到hadoop01的/home/root目录中
在hadoop01上执行命令cd /home/root,切换到目录/home/root下
执行命令tar -xzvf jdk-8u201-linux-x64.tar.gz -C apps/
将jdk解压到指定目录中(/home/root/apps)
执行命令vi /etc/profile
编辑/etc/profile文件,在文件的末尾设置JAVA环境变量
export JAVA_HOME=/home/root/apps/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin
执行命令source /etc/profile
,让/etc/profile文件修改后立即生效
查看jdk版本信息java -version
,如果能够显示正确版本信息,说明配置成功
在hadoop01上执行命令cd /home/root
,切换到目录/home/root下
执行命令tar -xzvf hadoop-2.9.2.tar.gz -C apps/
将hadoop解压到指定目录中(/home/root/apps)
可以删除目录中的文档
cd /home/root/apps/hadoop-2.9.2/share
rm -rf doc
vi /etc/profile
编辑/etc/profile文件,设置Hadoop环境变量
export JAVA_HOME=/home/root/apps/jdk1.8.0_201
export HADOOP_HOME=/home/root/apps/hadoop-2.9.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
执行命令source /etc/profile
,让/etc/profile文件修改后立即生效
执行命令cd /home/root/apps/hadoop-2.9.2/etc/hadoop
,切换到目录/home/root/apps/hadoop-2.9.2/etc/hadoop下
可以执行ll
命令,查看当前目录中的内容
vi core-site.xml
fs.defaultFS:
1)指定hadoop的文件系统为hdfs,默认值为file:///,表示本地文件系统,
2)指定hdfs的namenode节点为哪台机器
hadoop.tmp.dir:
默认值为/tmp/hadoop-${user.name},当CentOS系统重启后,由于/tmp目录内容会被清除,可能导致Hadoop无法正常启动,建议在第一次安装时修改默认值。当Hadoop系统运行后再修改,需要重新格式化namenode才有效。
fs.defaultFS</name>
hdfs://hadoop01:9000</value>
</property>
hadoop.tmp.dir</name>
/home/root/apps/hadoop-2.9.2/tmp</value>
</property>
vi hdfs-site.xml
dfs.replication:指定文件副本数量,默认值为3,完全分布式方式改为2
dfs.name.dir:指定namenode软件存储元数据的本地目录
dfs.data.dir:指定datanode软件存放文件块的本地目录
dfs.namenode.secondary.http-address:指定SecondaryNamenode的地址
dfs.replication</name>
2</value>
</property>
根据模板创建mapred-site.xml文件:
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
mapreduce.framework.name:指定资源管理器,默认值是local,应该修改为yarn
mapreduce.framework.name</name>
yarn</value>
</property>
vi yarn-site.xml
yarn.nodemanager.aux-services:指定辅助服务
yarn.resourcemanager.hostname:指定resourcemanager的地址
yarn.nodemanager.aux-services</name>
mapreduce_shuffle</value>
</property>
yarn.resourcemanager.hostname</name>
hadoop01</value>
</property>
vi hadoop-env.sh
将默认的export JAVA_HOME=${JAVA_HOME}
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_201
vi yarn-env.sh
将默认的# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_201
,
记得删除这一行最前面的#
vi mapred-env.sh
将默认的# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_201
,
记得删除这一行最前面的#
编辑slaves文件
vi slaves
将默认的localhost改为hadoop02、hadoop03、hadoop04、hadoop05
将hadoop01的配置文件传送给hadoop02、hadoop03、hadoop04、hadoop05
cd /home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop02:/home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop03:/home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop04:/home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop05:/home/root/apps/hadoop-2.9.2/etc/
hdfs namenode -format
cd /home/root/apps/hadoop-2.9.2/sbin
./start-all.sh
提示Are you sure you want to continue connecting (yes/no)?时,输入yes
输入jps
显示当前所有java进程pid,查看Hadoop是否启动成功(hadoop01是主节点,运行进程NameNode、SecondaryNameNode、ResourceManager;hadoop02、hadoop03、hadoop04、hadoop05是从节点,运行进程DataNode、NodeManager)。
hadoop02、hadoop03、hadoop04、hadoop05的pid进程一样
在Windows中启动浏览器查看运行情况(推荐使用Google Chrome浏览器)
HDFS的Web端口号是50070
在Hadoop的share目录里,自带了一些jar包,里面带有一些mapreduce实例小例子,位置在share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar,可以运行这些例子体验刚搭建好的Hadoop平台,我们这里来运行计算PI值的实例。
cd /home/root/apps/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.9.2.jar pi 10 1000
cd /home/root/apps/hadoop-2.9.2/sbin
./stop-all.sh
CentOS 关机:init 0
关闭Xshell
关闭VMware workstation
到此Hadoop完全分布式已搭建成功!
后续将继续更新关于HBase的完全分布式搭建,
感谢观看!
(注:第一次发文,如有错误和疑问,欢迎在评论区指出)
补充:HBase的完全分布式搭建已更新,https://blog.csdn.net/qq_47527477/article/details/120169183