当前位置: 首页 > 工具软件 > put2win > 使用案例 >

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

司寇灵均
2023-12-01

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

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

一. 安装

  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=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
    
  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/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

  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
   	找到<configuration>标签
   	在里面插入如下内容 
	```xml
	<property>
	       	<name>fs.defaultFS</name>
	       	<value>hdfs://hadop01:9000</value>
	</property>
	<property>
	       	<name>hadoop.tmp.dir</name>
	       	<value>/usr/local/hadoop2.7.7/tmp</value>
	</property>
	```
   	保存:> esc > :wq

    hdfs-site.xml
   	>vi hdfs-site.xml 
   	找到<configuration>
   	在里面插入如下内容 
	```xml
	<property>
	       	<name>dfs.replication</name>
	       	<value>3</value>
	</property>
	<property>
	       	<name>dfs.namenode.secondary.http-address</name>
	       	<value>hadoop02:50090</value>
	</property>
	```
   	保存:> esc > :wq 

    mapred-site.xml
    没有该文件 需要使用用到模板文件进行复制改名

   	>cp mapred-site.xml.template mapred-site.xml
   	vi mapred-site.xml 
   	找到<configuration>
   	在里面插入如下内容 
   	

	```xml
	<property>
	       	<name>mapreduce.framework.name</name>
	       	<value>yarn</value>
	</property>
	```
   	保存:> esc > :wq 

    yarn-site.xml

   	>vi yarn-site.xml 
   	找到<configuration> 
   	在里面插入如下内容 
   	```xml
   	<property>
   		<name>yarn.resourcemanager.hostname</name>
   		<value>hadoop01</value>
   	</property>
   	<property>
   		<name>yarn.nodemanager.aux-services</name>
   		<value>mapreduce_shuffle</value>
   	</property>
   	```
   	保存:> 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. 格式化文件系统命令: 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
有问题请留言或联系鄙人
不足之处请多多指教,感谢!!!

 类似资料: