通过本文实践,搭建好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_HOMEJAVA_HOME=/opt/module/jdk1.8.0_311PATH=$PATH:$JAVA_HOME/binexport JAVA_HOMEexport 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_HOMEJAVA_HOME=/opt/module/jdk1.8.0_311PATH=$PATH:$JAVA_HOME/binHADOOP_HOME=/opt/module/hadoop-3.3.1PATH=$PATH:$HADOOP_HOME/binPATH=$PATH:$HADOOP_HOME/sbinexport JAVA_HOMEexport HADOOP_HOMEexport 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 testsufiyar testangus testsufiyar testangus testsufiyar testangus testsufiyar testangus testsufiyar testdoudou testhadoop testroot tes#hadoop用户执行wordcount 测试,wcinput 为单词统计目录,wcoutput为统计结果输出目录$hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount wcinput wcoutput
执行结果如下:
下节完成分布式运行模式验证Hadoop集群