通过本文实践,搭建好3个实例的Hadoop集群,并验证集群的可用性。


1.环境准备

2. JDK卸载与安装

卸载是卸载OpenJDK,安装一些常用工具与jdk8

  • 卸载JDK
#卸载JDK,如果原来安装系统时有安装
#-n1 参数代表,挨个作为参数,供后面的命令处理
#rpm -e --nodeps  是卸载包,--nodeps表示不含依赖
$rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
  • 安装常用工具 
#”epel-release”的软件包,自动配置yum的软件仓库
$yum install -y epel-release

# 安装 psmisc 管理/proc目录的程序
# nc nc是netcat 网络工具包
# net-tools 是 net-tools工具箱包括arp, hostname, ifconfig, netstat, rarp, route, plipconfig, slattach等工具
# lrzsz 上传下载工具包
# ntp 时间同步
# libzstd 压缩工具

$yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
  • 虚拟机创建目录,上传安装文件,安装JDK
#一个放安装软件包  一个放解压后文件
$mkdir /opt/software  /opt/module

# 创建用户hadoop
$useradd hadoop

# 修改hadoop密码
$passwd hadoop

# 修改目录所有者与所属组
$chown -R hadoop:hadoop /opt/*

Mac上传安装文件

#拷贝Mac  主机上Hadoop、jdk 文件,到虚拟机101(102、103同样操作)的/opt/software目录下

$scp /opt/software/*.tar.gz root@192.168.56.101:/opt/software

安装JDK

#进入目录,解压
$cd /opt/software/
$tar -zxvf jdk-8u311-linux-i586.tar.gz -C /opt/module

配置JDK环境变量

#创建自己的配置文件cust.sh
$vi /etc/profile.d/cust.sh

#文件内容如下
$more cust.sh
#JAVA_HOME
JAVA_HOME=/opt/module/jdk1.8.0_311
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME
export PATH

如果出现以下问题,请按如下操作解决

$java -V
-bash: /opt/module/jdk1.8.0_311/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录

#原因: 度娘说是系统软件位数问题,如:64位系统中安装了32位程序
#解决方案
$yum install glibc.i686

安装后,再查看Java/javac 的版本

hadoop卸载ssh 卸载hadoop命令_hadoop

 其他虚假机实例102、103,一样的配方,一样的效果。

3.Hadoop 集群安装

解压配置Hadoop环境变量,102、103虚拟机实例也是一样操作。

#解压文件
$tar -zxvf /opt/software/jdk-8u311-linux-i586.tar.gz -C /opt/module/

#编辑cust.sh,改为如下
#JAVA_HOME
JAVA_HOME=/opt/module/jdk1.8.0_311
PATH=$PATH:$JAVA_HOME/bin
HADOOP_HOME=/opt/module/hadoop-3.3.1

PATH=$PATH:$HADOOP_HOME/bin
PATH=$PATH:$HADOOP_HOME/sbin
export JAVA_HOME
export HADOOP_HOME
export PATH

#执行下source
$source /etc/profile

#hadoop 命令看下版本信息,是否OK
$hadoop version

安装后查看如下:

hadoop卸载ssh 卸载hadoop命令_hadoop卸载ssh_02

 本地跑一个Hadoop sample

#修改文件归属组
$sudo chown -R hadoop:hadoop /opt/*

#创建目录
$cd /opt/module/hadoop-3.3.1
$mkdir wcinput
$vi wcinput_sample

#输入内容
angus test
sufiyar test
angus test
sufiyar test
angus test
sufiyar test
angus test
sufiyar test
angus test
sufiyar test
doudou test
hadoop test
root tes

#hadoop用户执行wordcount 测试,wcinput 为单词统计目录,wcoutput为统计结果输出目录
$hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount  wcinput  wcoutput

执行结果如下:

hadoop卸载ssh 卸载hadoop命令_hadoop卸载ssh_03

下节完成分布式运行模式验证Hadoop集群