本文目录导读:
《Linux虚拟机下轻松搭建Hadoop集群》
前期准备
1、虚拟机安装
- 选择合适的虚拟机软件,如VirtualBox或VMware Workstation,这里以VMware Workstation为例进行说明。
图片来源于网络,如有侵权联系删除
- 下载安装VMware Workstation,安装过程按照默认设置进行即可。
- 准备Linux系统镜像,如CentOS 7或Ubuntu等,CentOS 7是企业级Linux发行版,比较适合用于搭建Hadoop集群。
- 在VMware Workstation中创建新的虚拟机,选择自定义安装,分配足够的内存(建议每个节点至少2GB内存,如果条件允许可以更多)和磁盘空间(每个节点至少20GB),在安装过程中,按照提示设置root密码等信息。
2、网络配置
- 对于Hadoop集群,需要保证各个虚拟机节点之间能够互相通信,可以采用NAT网络模式或者桥接网络模式。
- 如果采用NAT模式,需要在虚拟机软件中设置端口转发规则,以便外部能够访问集群中的服务,如果是桥接模式,则虚拟机节点与宿主机处于同一网络段,更容易进行网络通信配置。
- 在每个虚拟机中,配置静态IP地址,以CentOS 7为例,编辑/etc/sysconfig/network - scripts/ifcfg - ens33
(这里的ens33可能根据网络接口名称不同而有所变化)文件,设置BOOTPROTO = "static"
,并添加IPADDR
(IP地址)、NETMASK
(子网掩码)、GATEWAY
(网关)和DNS1
(域名服务器)等参数。
BOOTPROTO = "static" IPADDR = 192.168.1.101 NETMASK = 255.255.255.0 GATEWAY = 192.168.1.1 DNS1 = 8.8.8.8
- 重启网络服务使配置生效,执行命令systemctl restart network
。
3、安装JDK
- Hadoop是基于Java开发的,所以需要在每个虚拟机节点上安装JDK。
- 下载合适版本的JDK,如JDK 8,可以从Oracle官方网站或者OpenJDK官方网站下载。
- 在CentOS 7中,将下载的JDK安装包上传到虚拟机中(可以使用scp命令进行文件传输)。
- 解压安装包到指定目录,例如/usr/local/java
,执行命令tar - zxvf jdk - 8u271 - linux - x64.tar.gz - C /usr/local/java
。
- 配置环境变量,编辑/etc/profile
文件,添加以下内容:
export JAVA_HOME = /usr/local/java/jdk1.8.0_271 export PATH = $JAVA_HOME/bin:$PATH export CLASSPATH =.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 使环境变量生效,执行命令source /etc/profile
。
Hadoop安装与配置
1、下载Hadoop
图片来源于网络,如有侵权联系删除
- 从Hadoop官方网站下载稳定版本的Hadoop,如Hadoop 3.3.0。
- 将下载的Hadoop压缩包上传到每个虚拟机节点的指定目录,例如/usr/local/hadoop
。
- 解压Hadoop压缩包,执行命令tar - zxvf hadoop - 3.3.0.tar.gz - C /usr/local/hadoop
。
2、配置Hadoop核心文件
hadoop - env.sh:编辑/usr/local/hadoop/hadoop - 3.3.0/etc/hadoop/hadoop - env.sh
文件,设置JAVA_HOME
变量,确保其指向正确的JDK安装目录,例如export JAVA_HOME = /usr/local/java/jdk1.8.0_271
。
core - site.xml:编辑/usr/local/hadoop/hadoop - 3.3.0/etc/hadoop/core - site.xml
文件,添加以下配置内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/hadoop - 3.3.0/tmp</value> </property> </configuration>
- 这里的master
是我们指定的Hadoop集群中的主节点名称,可以根据实际情况修改为对应的IP地址或者主机名。
hdfs - site.xml:编辑/usr/local/hadoop/hadoop - 3.3.0/etc/hadoop/hdfs - site.xml
文件,添加如下配置:
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/hadoop - 3.3.0/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/hadoop - 3.3.0/dfs/data</value> </property> </configuration>
mapred - site.xml:编辑/usr/local/hadoop/hadoop - 3.3.0/etc/hadoop/mapred - site.xml
文件,配置如下:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn - site.xml:编辑/usr/local/hadoop/hadoop - 3.3.0/etc/hadoop/yarn - site.xml
文件,添加以下内容:
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux - services</name> <value>mapreduce_shuffle</value> </property> </configuration>
3、配置集群节点信息
- 在/usr/local/hadoop/hadoop - 3.3.0/etc/hadoop
目录下,编辑workers
文件(在Hadoop 2.x版本中是slaves
文件),在文件中添加集群中的从节点主机名或者IP地址,每行一个节点,如果有三个节点,分别是master
(主节点)、node1
和node2
(从节点),则workers
如下:
node1 node2
4、配置主机名与IP地址映射
- 在每个虚拟机节点上,编辑/etc/hosts
文件,添加集群中所有节点的主机名和IP地址映射关系。
192、168.1.101 master 192、168.1.102 node1 192、168.1.103 node2
集群启动与测试
1、格式化NameNode
- 在主节点(这里假设是master
)上,进入/usr/local/hadoop/hadoop - 3.3.0/bin
目录,执行命令hdfs namenode - format
。
图片来源于网络,如有侵权联系删除
- 这个操作会初始化HDFS文件系统,创建相关的元数据目录等。
2、启动集群服务
- 在主节点上,执行start - all.sh
命令(该命令位于/usr/local/hadoop/hadoop - 3.3.0/sbin
目录下),这个命令会启动Hadoop集群中的所有服务,包括NameNode、DataNode、ResourceManager和NodeManager等。
- 可以通过查看各个节点的日志文件来检查服务是否启动成功,NameNode的日志文件位于/usr/local/hadoop/hadoop - 3.3.0/logs/hadoop - root - namenode - master.log
,DataNode的日志文件位于/usr/local/hadoop/hadoop - 3.3.0/logs/hadoop - root - datanode - node1.log
(这里以node1
节点为例)等。
3、测试Hadoop集群
HDFS测试
- 使用hdfs dfs - mkdir - p /test
命令在HDFS上创建一个名为test
的目录。
- 使用hdfs dfs - put /etc/hosts /test
命令将本地的/etc/hosts
文件上传到HDFS的/test
目录下。
- 使用hdfs dfs - ls /test
命令查看/test
目录下的文件列表。
MapReduce测试
- Hadoop自带了一些MapReduce示例程序,可以运行/usr/local/hadoop/hadoop - 3.3.0/share/hadoop/mapreduce/hadoop - mapreduce - examples - 3.3.0.jar
中的示例程序进行测试。
- 运行单词计数示例程序,执行命令hadoop jar /usr/local/hadoop/hadoop - 3.3.0/share/hadoop/mapreduce/hadoop - mapreduce - examples - 3.3.0.jar wordcount /test/hosts /test/wordcount - result
,这个命令会对/test/hosts
文件中的单词进行计数,并将结果输出到/test/wordcount - result
目录下。
通过以上步骤,就可以在Linux虚拟机中搭建一个简单的Hadoop集群,并进行基本的测试操作,在实际应用中,还可以根据需求进一步优化集群配置,如调整内存分配、增加节点数量等。
评论列表