注意,本文章只有实操,基本没有理论概述,因为鄙人也在新手阶段,这点微薄知识就不上传了。需要进一步深入了解请移步到官网
基于Win11、CentOS7、VMWare15pro搭建Hadoop2.7.7
一. 安装二. 配置IP映射三. 克隆四. 修改主机名五. 配置网卡六. 关闭防火墙七. 关闭SElinux八. 开启、配置shhd密匙认证九. 安装配置jdk8十. 安装配置hadoop十一、分发配置文件与资源十二. 测试启动Hadoop集群十三. 测试Hadoop集群十四. 配置hadoop集群时间同步
一. 安装- 首先在vm虚拟机里搭建一台linux(centos7)root账户密码都设置为 123456注意的事项为
以下文章的命令都是适用centos7的,centos6部分命令不适用
hadoop01 的内存为4G,hadoop02、hadoop03都为3G
不要配置分区
不要配置yum源
语言都使用English(US) 方便学习 或 不要产生不必要的问题
不要安装图形界面
网络模式使用NAT
参考链接:https://www.cnblogs.com/frankdeng/p/9027037.html
安装完成后找到vm虚拟机左上角的编辑 -> 虚拟网络编辑器 -> 选择类型为NAT模式 -> 下方子网IP改为:
192.168.121.0
右下DHCP设置 -> 起始IP与结束IP分别改为:
192.168.121.128
192.168.121.254
打开hadoop01,登陆root账户 vi /etc/hosts 按 i 在下面输入:
192.168.121.134 hadoop01
192.168.121.135 hadoop02
192.168.121.136 hadoop03
保存: Esc > :wq
- 克隆前先把 hadoop01 关机
在左边库中对hadoop01右键找到管理->克隆->选择完整克隆
修改克隆的名字为hadoop02与存储位置 (建议把三台linux放在同一个位置)
克隆完后修改内存为3G
hadoop03一样的操作
hadoop02、hadoop03也要修改对应的主机名
hostnamectl set-hostname hadoop01
查看结果
hostname
重启生效
reboot
hadoop01
HWADDR 的值在左边我的计算机下面的hadoop01右键->设置->网络适配器->高级->下方的MAC地址找到后复制到某个文本里 后面需要用到
修改网卡配置 ifcfg-ens33 以实际为准 可在该目录下查看 一般第一个就是
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改: onBOOT=yes BOOTPROTO=static 添加: IPADDR=192.168.121.134 GATEWAY=192.168.121.2 NETMASK=255.255.255.0 DNS1=8.8.8.8 DNS2=114.114.114.114 HWADDR=00:0C:29:29:B9:44 删除: UUID 或者注释 #UUID 重启网卡: systemctl restart network.service 验证: ping www.baidu.com
关闭NetworkManager
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
hadoop02、hadoop03也是一样的操作,除了ip地址与HWADDR值不一样
hadoop02、hadoop03也是一样的操作
七. 关闭SElinuxsystemctl start firewalld (开启防火墙)
systemctl status firewalld (查看防火墙状态 active 开启)
systemctl disable firewalld (永久关闭防火墙 重启生效)
systemctl stop firewalld (临时关闭 立即生效)
systemctl status firewalld ( 检查为 inactive 关闭)
hadoop02、hadoop03也是一样的操作
查看命令 sestatus
SELinux status: enabled (为开启)
vi /etc/selinux/conf
找到 SELINUX=enforcing
修改为 SELINUX=disabled
保存 esc > :wq
重启 reboot
验证效果
ping hadoop01
ping hadoop02
ping hadoop03
在每台都验证一下 看是否防火墙关闭成功
八. 开启、配置shhd密匙认证查看是否安装 ssh服务 rpm -qa | grep ssh
没有则安装:yum install -y openssl openssh-server
vi /etc/ssh/sshd_config
将下面的值取消 注释 或 修改为 yes
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启sshd服务
systemctl restart sshd
创建普通用户
2.1. 在后面的操作都将使用普通用户进行操作,root账户的权限太高,防止出现不可逆转的因素
创建普通用户
useradd hadoop
设置密码
passwd hadoop (密码都为 123456)su hadoop
2.2. 给普通用户添加使用sudo权限 (进入root账户操作)
su
visudo
在 root ALL=(ALL) ALL 下面添加
hadoop ALL=(ALL) ALL
去掉 %wheel ALL=(ALL) NOPASSWD:ALL前面的#
保存 esc > :wq
gpasswd -a hadoop wheel
su hadoop
测试 sudo date
生成公钥与私钥
然后在hadoop01、hadoop02、hadoop03上都运行下面代码
ssh-keygen -t rsa
ssh-copy-id hadoop01 # 输入yes 然后输入密码
ssh-copy-id hadoop02
ssh-copy-id hadoop03
免密测试
ssh hadoop02
ssh hadoop03
ssh hadoop01
都不需要输入密码就能登陆,就是成功了
下载账户
因为下载jdk需要登陆账户,所有为大家提供一个账户(密码后有位小数点),方便学习使用,请不要改密码,谢谢!
user:lateautumns@163.com
passwd: Oracle123.
首先创建目录在根目录下cd ~
sudo mkdir -p /export/data # 存放数据类文件
sudo mkdir -p /export/servers # 存放服务类软件
sudo mkdir -p /export/software # 存放安装包文件
下载
下载jdk-8uxxx-linux-x64.tar.gz (xxx表示版本)参考链接:https://blog.csdn.net/pdsu161530247/article/details/81582980
利用SecureFX OR WinSCP等软件将文件上传到Linux里export/software目录下,执行下面命令
cd /export/software
tar -zxvf jdk-8uxxx-linux-x64.tar.gz -C /export/servers/
配置环境变量
vi /etc/profile
执行下面命令快速编辑
99gg > o
复制以下内容
export JAVA_HOME=/export/servers/jdk1.8.0_xxx #jdk安装目录
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
保存命令
esc > :wq
让环境变量立即生效
source /etc/profile
验证:
javac
java -version
安装:
下载hadoop-2.7.7.tar.gz
下载链接:https://archive.apache.org/dist/hadoop/common/?C=M;O=D
利用SecureFX 将文件复制到export/software目录下
cd /export/software
tar -zxvf jdk-8uxxx-linux-x64.tar.gz -C /export/servers/
配置环境变量
vi /etc/profile
export HADOOP_HOME=/usr/local/hadoop2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
让环境变量立即生效
source /etc/profile
验证
hadoop version
修改配置文件:
需要修改的配置文件有hadoop-env.sh、core-site.xml、 hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves。
下面进行个性化配置
hadoop-env.sh
cd /export/servers/hadoop2.7.7/etc/hadoop/
vi hadoop-env.sh
将 export JAVA_HOME=${JAVA_HOME}
修改为:export JAVA_HOME=/export/servers/jdk1.8.0_xxx # java安装路径
保存:> esc > :wq
core-site.xml
vi core-site.xml
找到标签
在里面插入如下内容
fs.defaultFS hdfs://hadop01:9000 hadoop.tmp.dir /usr/local/hadoop2.7.7/tmp
保存:> esc > :wq
hdfs-site.xml
vi hdfs-site.xml
找到
在里面插入如下内容
dfs.replication 3 dfs.namenode.secondary.http-address hadoop02:50090
保存:> esc > :wq
mapred-site.xml
没有该文件 需要使用用到模板文件进行复制改名
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
找到
在里面插入如下内容
mapreduce.framework.name yarn
保存:> esc > :wq
yarn-site.xml
vi yarn-site.xml
找到
在里面插入如下内容
yarn.resourcemanager.hostname hadoop01 yarn.nodemanager.aux-services mapreduce_shuffle
保存:> esc > :wq
slaves
vi slaves
删掉loaclhost
添加 (每个占一行)
hadoop01
hadoop02
hadoop03
scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
scp -r /usr/local10 * * * * /usr/sbin/ntpdate hadoop01 # 每过10分钟与hadoop01同步时间
hadoop01 先调整时间
sudo date -s “2022-3-17 18:18:06”
等待其他机器同步时间
ntpdate hadoop01 # 强制与hadoop01同步时间 但不建议这么做
ntpd 是与服务器的时间通过计算慢慢的把自己的时间更改过来
ntpdate 是立即同步时间,即时间的跃变。对某些依靠时间的程序造成不可逆转的问题
参考连接:https://www.cnblogs.com/liushui-sky/p/9203657.html
有问题请留言或联系鄙人
不足之处请多多指教,感谢!!!



