Hadoop集群环境安装部署

大数据

1. 基础环境准备

集群整体规划

三台服务器:
192.168.2.153
192.168.2.154
192.168.2.155

给三台服务器都添加hosts解析
192.168.2.153 centos-hadoop1
192.168.2.154 centos-hadoop2
192.168.2.155 centos-hadoop3

三台服务器都设置ssh免密登录,形成互免
[root@centos-hadoop1 mysoft]# ssh-keygen -t rsa -b 4096

执行如下命令,将公钥追加到远程服务器
[root@centos-hadoop1 mysoft]# ssh-copy-id centos-hadoop1
[root@centos-hadoop1 mysoft]# ssh-copy-id centos-hadoop2
[root@centos-hadoop1 mysoft]# ssh-copy-id centos-hadoop3

2. JDK部署

三台服务器都要安装jdk
[root@centos-hadoop1 mysoft]# tar -xf jdk-8u251-linux-x64.tar.gz -C /usr/local/
[root@centos-hadoop1 mysoft]# cat /etc/profile
……
export JAVA_HOME=/usr/local/jdk1.8.0_251
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
[root@centos-hadoop1 mysoft]# source /etc/profile

[root@centos-hadoop1 local]# java
用法: java [-options] class [args…]
(执行类)
或 java [-options] -jar jarfile [args…]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server,
因为您是在服务器类计算机上运行。

-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
              用 : 分隔的目录, JAR 档案
              和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
              设置系统属性
-verbose:[class|gc|jni]
              启用详细输出
-version      输出产品版本并退出

……

3. Hadoop安装

在Hadoop官网下载包

在centos-hadoop1解压Hadoop包
[root@centos-hadoop1 mysoft]# tar -xf hadoop-3.3.6.tar.gz -C /usr/local/
[root@centos-hadoop1 local]# cd hadoop-3.3.6/
[root@centos-hadoop1 hadoop-3.3.6]# ll
总用量 88
drwxr-xr-x. 2 1000 1000 203 6月 18 17:08 bin
drwxr-xr-x. 3 1000 1000 20 6月 18 16:24 etc
drwxr-xr-x. 2 1000 1000 106 6月 18 17:08 include
drwxr-xr-x. 3 1000 1000 20 6月 18 17:08 lib
drwxr-xr-x. 4 1000 1000 288 6月 18 17:08 libexec
-rw-rw-r–. 1 1000 1000 24276 6月 14 08:16 LICENSE-binary
drwxr-xr-x. 2 1000 1000 4096 6月 18 17:08 licenses-binary
-rw-rw-r–. 1 1000 1000 15217 6月 10 07:41 LICENSE.txt
-rw-rw-r–. 1 1000 1000 29473 6月 10 07:41 NOTICE-binary
-rw-rw-r–. 1 1000 1000 1541 6月 10 07:33 NOTICE.txt
-rw-rw-r–. 1 1000 1000 175 6月 10 07:33 README.txt
drwxr-xr-x. 3 1000 1000 4096 6月 18 16:24 sbin
drwxr-xr-x. 4 1000 1000 31 6月 18 17:37 share

[root@centos-hadoop1 hadoop]# mkdir -p /data/hadoop/
[root@centos-hadoop1 hadoop]# chmod 777 /data/hadoop/
[root@centos-hadoop1 hadoop]# mkdir /data/hadoop/logs

3.1 修改配置文件

(1)配置workers文件
[root@centos-hadoop1 hadoop-3.3.6]# cd etc/hadoop/
[root@centos-hadoop1 hadoop]# cat workers
centos-hadoop1
centos-hadoop2
centos-hadoop3
表示集群有三个从节点

(2)配置hadoop-env.sh文件
[root@centos-hadoop1 hadoop]# cat hadoop-env.sh
……
export JAVA_HOME=/usr/local/jdk1.8.0_251
export HADOOP_HOME=/usr/local/hadoop-3.3.6
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_LOG_DIR=/data/hadoop/logs

(3)配置core-site.xml文件
#添加如下内容
<configuration>
    <!--用于设置Hadoop的文件系统,由URI指定-->
    <property>
        <name>fs.defaultFS</name>
        <!--用于指定NameNode地址在centos-hadoop1机器上-->
        <value>hdfs://centos-hadoop1:9000</value>
    </property>
    <!—用于配置IO操作文件缓冲区大小 -->
    <property>
        <name> io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>
(4)配置hdfs-site.xml文件
#添加如下内容
<configuration>
<property>
	<!-- 指定HDFS的数量,不能超过DataNode节点数量 -->
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
	<!-- NameNode web端访问地址 -->
        <name>dfs.namenode.http-address</name>
        <value>centos-hadoop1:9870</value>
    </property>
    <property>
	<!-- secondary NameNode 所在主机的IP和端口 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>centos-hadoop3:50090</value>
    </property>
    <property>
    	<!-- hdfs文件系统默认创建文件权限设置 -->
        <name>dfs.datanode.data.dir.perm</name>
        <value>700</value>
    </property>
    <property>
    	<!-- NameNode元数据的存储位置 -->
        <name>dfs.namenode.name.dir</name>
        <value>/data/hadoop/namenode</value>
    </property>
    <property>
    	<!-- NameNode运行哪些节点的DataNode连接 -->
        <name>dfs.namenode.hosts</name>  
        <value>centos-hadoop1,centos-hadoop2,centos-hadoop3</value>
    </property>
    <property>
    	<!-- hdfs默认大小256MB -->
        <name>dfs.blocksize</name>
        <value>268435456</value>
    </property>
    <property>
    	<!-- NameNode处理的开发线程数 -->
        <name>dfs.namenode.handler.count</name>
        <value>100</value>
    </property>
    <property>
    	<!-- 从节点DataNode的数据存储目录 -->
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/datanode</value>
    </property>
</configuration>
(5)配置mapred-site.xml文件
#添加如下内容
<configuration>
    <!-- 指定MapReduce运行时的框架,这里指定在YARN上,默认在local -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
(6)配置yarn-site.xml文件
#添加如下内容
<configuration>
<!-- Site specific YARN configuration properties -->
    <!-- 指定YARN集群的管理者(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>centos-hadoop2</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

(7)启停文件修改
配置sbin目录下的start-dfs.sh,stop-dfs.sh,添加启动用户
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

配置sbin目录下的start-yarn.sh,stop-yarn.sh,添加启动用户
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

(8)分发Hadoop文件
[root@centos-hadoop1 ~]# cd /usr/local/
[root@centos-hadoop1 local]# scp -r hadoop-3.3.6/* centos-hadoop2:/usr/local/hadoop-3.3.6/
[root@centos-hadoop1 local]# scp -r hadoop-3.3.6/* centos-hadoop3:/usr/local/hadoop-3.3.6/

3.2 配置环境变量

三台服务器都需要配置
[root@centos-hadoop1 ~]# cat /etc/profile
……
export HADOOP_HOME=/usr/local/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[root@centos-hadoop1 ~]# source /etc/profile

查看是否配置成功
[root@centos-hadoop1 ~]# hadoop version
Hadoop 3.3.6
Source code repository https://github.com/apache/hadoop.git -r 1be78238728da9266a4f88195058f08fd012bf9c
Compiled by ubuntu on 2023-06-18T08:22Z
Compiled on platform linux-x86_64
Compiled with protoc 3.7.1
From source with checksum 5652179ad55f76cb287d9c633bb53bbd
This command was run using /usr/local/hadoop-3.3.6/share/hadoop/common/hadoop-common-3.3.6.jar

3.3 在主节点格式化文件系统

[root@centos-hadoop1 hadoop-3.3.6]# hdfs namenode -format
……
INFO common.Storage: Storage directory /data/hadoop/namenode has been successfully formatted.
……
当看到如上信息,表示successfully formatted 格式化成功

4. Hadoop集群测试

启动集群,在节点上依次启动HDFS服务
[root@centos-hadoop1 sbin]# ./start-dfs.sh
[root@centos-hadoop2 sbin]# ./start-dfs.sh
[root@centos-hadoop3 sbin]# ./start-dfs.sh

使用jps命令查看进程

[root@centos-hadoop1 sbin]# jps
11159 NodeManager
11256 Jps
8745 NameNode
9097 DataNode

[root@centos-hadoop2 sbin]# jps
11252 Jps
8776 DataNode
10776 ResourceManager
10911 NodeManager

[root@centos-hadoop3 sbin]# jps
10932 NodeManager
8789 DataNode
11034 Jps
9069 SecondaryNameNode

5. 验证Hadoop是否配置成功

在浏览器中输入 http://192.168.2.153:9870,如下:

点击”Live Nodes”,如下:

出现如图所示,那么,Hadoop集群安装部署完成!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注