通过本文实践,搭建好3个实例的Hadoop集群,并验证集群的可用性。
1.环境准备
- 3个Linux虚拟机实例,搭建请参考之前文章(Mac下VirtualBox安装Centos 实现固定IP+互联网访问与Linux 多实例间免密登录)
- Hadoop 包(hadoop-3.3.1.tar.gz)
- JDK安装包(jdk-8u311-linux-i586.tar.gz)
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 的版本
其他虚假机实例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 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集群