基于Win11、CentOS7、VMWare15pro搭建Hadoop2.7.7

基于Win11、CentOS7、VMWare15pro搭建Hadoop2.7.7 注意,本文章只有实操,基本没有理论概述,因为鄙人也在新手阶段,这点微薄知识就不上传了 。需要进一步深入了解请移步到官网
目录

    • 基于Win11、CentOS7、VMWare15pro搭建Hadoop2.7.7
        • 一. 安装
        • 二. 配置IP映射
        • 三. 克隆
        • 四. 修改主机名
        • 五. 配置网卡
        • 六. 关闭防火墙
        • 七. 关闭SElinux
        • 八. 开启、配置shhd密匙认证
        • 九. 安装配置jdk8
        • 十. 安装配置hadoop
        • 十一、分发配置文件与资源
        • 十二. 测试启动Hadoop集群
        • 十三. 测试Hadoop集群
        • 十四. 配置hadoop集群时间同步

一. 安装
  1. 首先在vm虚拟机里搭建一台linux(centos7)root账户密码都设置为 123456
  2. 注意的事项为
    以下文章的命令都是适用centos7的,centos6部分命令不适用
    hadoop01 的内存为4G,hadoop02、hadoop03都为3G
    不要配置分区
    不要配置yum源
    语言都使用English(US) 方便学习 或 不要产生不必要的问题
    不要安装图形界面
    网络模式使用NAT
    参考链接:https://www.cnblogs.com/frankdeng/p/9027037.html
二. 配置IP映射
  1. 安装完成后找到vm虚拟机左上角的编辑 -> 虚拟网络编辑器 -> 选择类型为NAT模式 -> 下方子网IP改为:
    192.168.121.0
  2. 右下DHCP设置 -> 起始IP与结束IP分别改为:
    192.168.121.128
    192.168.121.254
  3. 打开hadoop01,登陆root账户 vi /etc/hostsi 在下面输入:
    192.168.121.134 hadoop01
    192.168.121.135 hadoop02
    192.168.121.136 hadoop03
    保存: Esc > :wq
三. 克隆
  1. 克隆前先把 hadoop01 关机
    在左边库中对hadoop01右键找到管理->克隆->选择完整克隆
    修改克隆的名字为hadoop02与存储位置 (建议把三台linux放在同一个位置)
    克隆完后修改内存为3G
    hadoop03一样的操作
四. 修改主机名
  1. hadoop02、hadoop03也要修改对应的主机名
    hostnamectl set-hostname hadoop01
    查看结果
    hostname
    重启生效
    reboot
五. 配置网卡 hadoop01
HWADDR 的值在左边我的计算机下面的hadoop01右键->设置->网络适配器->高级->下方的MAC地址找到后复制到某个文本里 后面需要用到
  1. 修改网卡配置 ifcfg-ens33 以实际为准 可在该目录下查看 一般第一个就是
    vi /etc/sysconfig/network-scripts/ifcfg-ens33
    修改:ONBOOT=yesBOOTPROTO=static添加:IPADDR=192.168.121.134GATEWAY=192.168.121.2NETMASK=255.255.255.0DNS1=8.8.8.8DNS2=114.114.114.114HWADDR=00:0C:29:29:B9:44删除:UUID 或者注释 #UUID重启网卡:systemctl restart network.service 验证:ping www.baidu.com
  2. 关闭NetworkManager
    systemctl stop NetworkManager.service
    systemctl disable NetworkManager.service
    hadoop02、hadoop03也是一样的操作,除了ip地址与HWADDR值不一样
六. 关闭防火墙 hadoop02、hadoop03也是一样的操作
systemctl start firewalld (开启防火墙)
systemctl status firewalld (查看防火墙状态 active 开启)
systemctl disable firewalld (永久关闭防火墙 重启生效)
systemctl stop firewalld (临时关闭 立即生效)
systemctl status firewalld ( 检查为 inactive 关闭)
七. 关闭SElinux hadoop02、hadoop03也是一样的操作
查看命令 sestatus
SELinux status: enabled (为开启)
vi /etc/selinux/conf
找到 SELINUX=enforcing
修改为 SELINUX=disabled
保存 esc > :wq
重启 reboot
验证效果
ping hadoop01
ping hadoop02
ping hadoop03
在每台都验证一下 看是否防火墙关闭成功
八. 开启、配置shhd密匙认证
  1. 查看是否安装 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. 创建普通用户
    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
  3. 生成公钥与私钥
    然后在hadoop01、hadoop02、hadoop03上都运行下面代码
    ssh-keygen -t rsa
    ssh-copy-id hadoop01 # 输入yes 然后输入密码
    ssh-copy-id hadoop02
    ssh-copy-id hadoop03
  4. 免密测试
    ssh hadoop02
    ssh hadoop03
    ssh hadoop01
    都不需要输入密码就能登陆,就是成功了
九. 安装配置jdk8
  1. 下载账户
    因为下载jdk需要登陆账户,所有为大家提供一个账户(密码后有位小数点),方便学习使用,请不要改密码,谢谢!
    user:lateautumns@163.com
    passwd: Oracle123.
  2. 首先创建目录在根目录下cd ~
    sudo mkdir -p /export/data # 存放数据类文件
    sudo mkdir -p /export/servers # 存放服务类软件
    sudo mkdir -p /export/software # 存放安装包文件
  3. 下载
    下载jdk-8uxxx-linux-x64.tar.gz (xxx表示版本)参考链接:https://blog.csdn.net/pdsu161530247/article/details/81582980
    利用SecureFX OR WinSCP等软件将文件上传到Linux里export/software目录下,执行下面命令
    cd /export/softwaretar -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}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}保存命令esc > :wq让环境变量立即生效source /etc/profile验证:javacjava -version
十. 安装配置hadoop
  1. 安装:
    下载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
  2. 修改配置文件:
    需要修改的配置文件有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.defaultFShdfs://hadop01:9000hadoop.tmp.dir/usr/local/hadoop2.7.7/tmp 保存:> esc > :wq
    hdfs-site.xml
    vi hdfs-site.xml
    找到
    在里面插入如下内容
    dfs.replication3dfs.namenode.secondary.http-addresshadoop02:50090 保存:> esc > :wq
    mapred-site.xml
    没有该文件 需要使用用到模板文件进行复制改名
    cp mapred-site.xml.template mapred-site.xml
    vi mapred-site.xml
    找到
    在里面插入如下内容
    mapreduce.framework.nameyarn 保存:> 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/local/* hadoop02:/usr/local/
scp -r /usr/local/* hadoop03:/usr/local/
然后在hadoop02、hadoop03分别执行 source /etc/profile # 刷新配置文件
分别验证
java -version
hadoop version
十二. 测试启动Hadoop集群
  1. 【基于Win11、CentOS7、VMWare15pro搭建Hadoop2.7.7】格式化文件系统命令:hdfs namenode -format (在生成的日志记录中看到 been successfully formatted 表示成功) 。
    如果有报错信息,查看报错信息,根据报错信息解决问题 。一般为前面配置的4个文件是否有误 。
    修改后重新格式化 。
    使用普通用户启动hadoop集群(因为我们是在hadoop用户中配置的ssh免登陆)
    su hadoop
    start-dhs.sh # 这些命令是在hadoop目录下的sbin目录里
    start-yarn.sh
    jps # 查看节点是否启动 分别为
    hadoop01
    resourcemanager \ nodemanager \ datenode \ namenode
    hadoop02
    datenode \ nodemanager \ secondarynamenode
    hadoop03
    datenode \ nodemanager
    如果少一个,可以试试关闭集群,重新启动 或者单独启动缺少的节点 命令在sbin目录中查找
    需要在对应的节点启动对应的节点 (hadoop01为主节点)
    关闭命令
    stop-dhs.sh
    stop-yarn.sh
    还不行可能是配置,可以去查看haoop目录下的logs目录中的log文件找报错原因
  2. 配置windows的hosts文件
    找到C:\Windows\System32\drivers\etc 目录下的hosts文件,右键,属性,把只读的选项取消 。然后用笔记本或notepad++打开hosts文件,在下面添加如下内容
    192.168.121.134 hadoop01
    192.168.121.135 hadoop02
    192.168.121.136 hadoop03
    在浏览器里打开 http://hadoop01:50070与http://hadoop01:8088 。查看运行情况,成功打开
    至此Hadoop集群搭建完毕
十三. 测试Hadoop集群 单词词频统计
cd ~/export/data/
sudo vi word.txt
添加:
hello itcast
hello itheima
hello hadoop
保存:esc >:wq
hadoop fs -mkdir -p /wordcount/input
hadoop fs -put word.txt /wordcount/input
cd /export/servers/hadoop-2.7.7/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /wordcount/input wordcount/output
查看浏览器的两个页面,8088端口的会显示运行状态,结束后,查看50070端口,点击utilities > Browse the file system 输入 /wordcount/output > 点击part-r-00000 > 下载后使用notepad++打开查看结果
参考链接:https://blog.csdn.net/qq_40487484/article/details/96772856
?????https://blog.csdn.net/pengjunlee/article/details/81589972
?????https://www.cnblogs.com/theyang/p/12336391.html
?????https://blog.csdn.net/pengjunlee/article/details/53932094
十四. 配置hadoop集群时间同步 使用Hadoop01为主服务器,其他节点根据主服务器来自动修正时间
所有节点都需要安装ntp与ntpdate
yum install -y ntp and yum install -y ntpdate
hadoop01:
vi /etc/ntp.conf
授权192.168.121.128-192.168.121.255网段上的所有机器可以从这台机器上查询和同步时间
修改
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

restrict 192.168.121.128 mask 255.255.255.0 nomodify notrap
集群在局域网中,不使用其他互联网上的时间
注释 类似 server 0.centos.pool.ntp.org iburst 有多少注释多少
并在后面添加主服务器的ip
server 192.168.121.134
server cn.pool.ntp.org perfer # 网络时间同步
当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步,所以到末尾添加
server 127.127.1.0
fudge 127.127.1.0 stratum 10
保存
修改ntpd配置
vi /etc/sysconfig/ntpd
添加
SYNC_HWCLOCK=yes
重新启动
systemctl enable ntpd
systemctl restart ntpd
开机自启
chkconfig ntpd on
hadoop02、hadoop03配置
vi /etc/ntp.conf
注释 类似 server 0.centos.pool.ntp.org iburst 有多少注释多少
并在后面添加主服务器的ip
server 192.168.121.134
保存后
crontab -e
*/10 * * * * /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
有问题请留言或联系鄙人
不足之处请多多指教,感谢!!!