最新版hadoop-3.4.0集群安装和配置(目前论坛的都是老古董了,看我的准没错!!!)这里以三台服务器为例
一.在ali-nginx-vm配置免密登录,ali-nginx-vm–>Redis集群三个服务器方向可免密,三台服务器互相切换可免密(步骤相同不做赘述)反过来未配置
1.在ali-nginx-vm使用如下命令
ssh-keygen -t rsa
2.双击两次回车生成公钥
3.分别发送到如下三台机器,用如下命令
ssh-copy-id root@172.16.0.226
4.依次发送输入密码:
5.测试免密登录成功
可以略过,将所需要的集群服务器配置免密即可
6.三台服务器配置jdk,使用scp命令将ali-business-vm1服务器上的jdkrpm文件分别复制到对应三台服务器,作为hadoop的Java环境
7.切换服务器查看复制成功
8.在三台服务器分别解压(其余两台类似不做赘述):
命令:
rpm -ivh jdk-8u421-linux-x64.rpm #默认解压到/usr/java目录
9.修改/etc/profile文件配置环境变量:
export JAVA_HOME=/usr/java/jdk1.8.0-x64
export PATH=$JAVA_HOME/bin:$PATH
10.使变量生效
source /etc/profile
并使用
java -version
查看配置成功:
11.在主节点vm1下载hadooptar包
12.配置主机映射
vim /etc/hosts
13.分别复制到其余两台服务器并检验成功
14.在主节点根目录创建hadoop目录
15,将hadoop解压到hadoop目录之下:
tar -zxvf hadoop-3.4.0.tar.gz -C /hadoop
16.进入hadoop目录查看是否解压成功
17.在主节点上编辑Hadoop配置文件(/hadoop/hadoop-3.4.0/etc/hadoop/
):
- hadoop-env.sh:设置
JAVA_HOME
和其他环境变量。 - core-site.xml:配置文件系统的默认FS和IO设置。
- hdfs-site.xml:配置HDFS的副本策略和数据存储。
- mapred-site.xml:配置MapReduce作业的运行。
- yarn-site.xml:配置YARN的资源管理。
- workers(较低版本是slaves):列出所有从节点的IP地址或主机名。
18.各文件配置信息如下(某些配置不是必须的,可以依据个人作业情况增删相关配置):
hadoo-env.sh
加入一行 :export JAVA_HOME=/usr/java/jdk1.8.0-x64 #为Java的环境路径(换成自己的)
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ali-kafka-vm1:9000</value> #//后面的主机名端口可自定义
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/tmp</value> #临时文件目录可自定义
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/hadoop/hdfs/namenode</value> #设置NameNode存储文件系统镜像的路径。
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/hadoop/hdfs/datanode</value> #设置DataNode存储数据块的路径。
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name> #指定MapReduce作业运行在YARN上。
<value>yarn</value>
</property>
#以下配置用于在任务执行过程中定位 Hadoop MapReduce 相关的类和资源。例如,如果任务需要引用 Hadoop MapReduce 的库或者使用 Hadoop 的一些脚本,它们可以通过 HADOOP_MAPRED_HOME 环境变量来找到正确的路径。
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/hadoop/hadoop-3.4.0</value> #设置了 ApplicationMaster 的环境变量
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/hadoop/hadoop-3.4.0</value> #设置了 Map 任务的环境变量。
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/hadoop/hadoop-3.4.0</value> #设置了 Reduce 任务的环境变量
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>ali-kafka-vm1</value> #指定ResourceManager的主机名或IP地址
</property>
<property>
<name>yarn.nodemanager.aux-services</name> #设置NodeManager上运行的辅助服务
<value>mapreduce_shuffle</value>
</property>
</configuration>
wokers
ali-kafka-vm2 #列出所有从节点的主机名或IP
ali-kafka-vm3
17.使用scp命令将hadoop目录复制到其余两台服务器
scp -r /hadoop root@ali-kafka-vm3:/hadoop
-
三台服务器均修改/etc/profile添加hadoop环境变量如下,并source
export HADOOP_HOME=/hadoop/hadoop-3.4.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
-
查看是否配置成功(其余两节点操作相同)
-
格式化HDFS,在主节点执行以下命令
hdfs namenode -format
格式化成功
21.在主节点上执行以下命令启动所有守护进程:
start-dfs.sh
start-yarn.sh
22.主节点jps查看
23.从节点jps查看
24.用hadoop提供的测试jar包运行作业测试
①在主节点hadoop目录下创建text文件内容如下
②创建已经成功,之后上传到hdfs
上传命令:
hdfs dfs -put /hadoop/text /input
使用命令查看上传成功:
hdfs dfs -ls /input
②使用 Hadoop 自带的示例程序(如 wordcount
)来测试 MapReduce 作业是否能够正常运行(这个作业会统计单词出现的次数):
hadoop jar /hadoop/hadoop-3.4.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.0.jar wordcount /input /output
执行成功:
③查看输出目录:
可以看到输出数字2,与预期结果一致,至此hadoop3.4.0版本集群搭建成功,觉得有用的点个免费的赞吧!懂得掌声!