hadoop3.3.4集群安装部署

本文档详细介绍了在3台CentOS7服务器上安装和配置Hadoop3.3.4集群的步骤,包括环境准备、下载安装、配置HDFS、MapReduce和Yarn、分发配置以及启动服务。涉及的配置包括修改hosts、主机名、免密登录、时间同步、端口开放,以及Hadoop相关组件的配置和启动。

一、环境准备:3台centos7服务器

        修改hosts(所有服务器都需要修改)

vim /etc/hosts

10.9.5.114 cdh1
10.9.5.115 cdh2
10.9.5.116 cdh3

 

        修改主机名,cdh1为主机名,根据自己定义

sysctl kernel.hostname=cdh1

        安装远程同步工具rsync,用于服务器间同步配置文件

yum install -y rsync

        设置时间同步,如果时间相差过大启动会报ClockOutOfSyncException异常,默认是30000ms

        安装以下包,否则可能会报No such file or directory

yum install autoconf automake libtool

        配置root用户免密登录(所有服务器执行,因为host配置的是IP,所以本机也需要执行公钥上传)

cd ~/.ssh/
ssh-keygen -t rsa         #生成免密登录公私钥,根据提示按回车或y
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh1  #将本机的公钥上传至cdh1机器上,实现对cdh1机器免密登录
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh3

        关闭防火墙,或者放行以下端口:9000、50090、8022、50470、50070、49100、8030、8031、8032、8033、8088、8090

二、下载hadoop3.3.4

        下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

三、安装Hadoop

        1、登录cdh1服务器,将下载的安装包上传至/home/software目录

        进入/home/service目录并解压hadoop

cd /home/servers/
tar -zxvf ../software/hadoop-3.3.1.tar.gz

        2、将Hadoop添加到环境变量vim /etc/profile

vim /etc/profile

export HADOOP_HOME=/home/servers/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

        3、新建目录

mkdir /home/hadoop
mkdir /home/hadoop/tmp
mkdir /home/hadoop/var
mkdir /home/hadoop/dfs
mkdir /home/hadoop/dfs/name
mkdir /home/hadoop/dfs/data

        4、Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置

        HDFS集群配置

                1. 将JDK路径明确配置给HDFS(修改hadoop-env.sh)

                2. 指定NameNode节点以及数据存储目录(修改core-site.xml)

                3. 指定SecondaryNameNode节点(修改hdfs-site.xml)

                4. 指定DataNode从节点(修改workers文件,每个节点配置信息占一行)         MapReduce集群配置

                1. 将JDK路径明确配置给MapReduce(修改mapred-env.sh)

                2. 指定MapReduce计算框架运行Yarn资源调度框架(修改mapred-site.xml)

        Yarn集群配置

                1. 将JDK路径明确配置给Yarn(修改yarn-env.sh)

                2. 指定ResourceManager老大节点所在计算机节点(修改yarn-site.xml)

                3. 指定NodeManager节点(会通过workers文件内容确定)

         修改hadoop-env.sh,放开注释改成jdk安装的路径

cd /home/servers/hadoop-3.3.1/etc/hadoop
vim hadoop-env.sh

        修改core-site.xml,在文件的configrue标签内加入以下内容

<property>
     <name>hadoop.tmp.dir</name>
     <value>/home/hadoop/tmp</value>
     <description>Abase for other temporary directories.</description>
 </property>

 <property>
     <name>fs.default.name</name>
     <value>hdfs://cdh1:9000</value>
 </property>

         修改hdfs-site.xml文件,在文件的configrue标签内加入以下内容

<property>
   <name>dfs.name.dir</name>
   <value>/home/hadoop/dfs/name</value>
   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>

<property>
   <name>dfs.data.dir</name>
   <value>/home/hadoop/dfs/data</value>
   <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
   <name>dfs.namenode.secondary.http-address</name>
   <value>cdh3:50090</value>
</property>

  <property>
    <name>dfs.namenode.servicerpc-address</name>
    <value>cdh1:8022</value>
  </property>
  <property>
    <name>dfs.https.address</name>
    <value>cdh1:50470</value>
  </property>
  <property>
    <name>dfs.https.port</name>
    <value>50470</value>
  </property>
<!-- 配置namenode的web界面-->
<property>
   <name>dfs.namenode.http-address</name>
   <value>cdh1:50070</value>
</property>
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property>

        修改workers文件加入节点信息,每个节点占一行

cdh1
cdh2
cdh3

        修改mapred-env.sh文件,在文件末尾添加JDK路径

export JAVA_HOME=/usr/local/jdk1.8.0_291

         修改mapred-site.xml文件,在文件的configrue标签内加入以下内容

<property>
    <name>mapred.job.tracker</name>
    <value>cdh1:49001</value>
</property>

<property>
      <name>mapred.local.dir</name>
       <value>/home/hadoop/var</value>
</property>

<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

        修改yarn-env.sh,,在文件末尾添加JDK路径

export JAVA_HOME=/usr/local/jdk1.8.0_291

        修改yarn-site.xml,在文件的configrue标签内加入以下内容

<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>cdh1</value>
   </property>

   <property>
        <description>The address of the applications manager interface in the RM.</description>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
   </property>

   <property>
        <description>The address of the scheduler interface.</description>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
   </property>

   <property>
        <description>The http address of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
   </property>

   <property>
        <description>The https adddress of the RM web application.</description>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
   </property>

   <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
   </property>

   <property>
        <description>The address of the RM admin interface.</description>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>

   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>

   <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>1024</value>
        <discription>每个节点可用内存,单位MB,默认8182MB</discription>
   </property>

   <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>2.1</value>
   </property>

   <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
   </property>
   <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
   </property>

        修改start-dfs.sh,stop-dfs.sh文件,在文件头部添加以下配置

cd /home/servers/hadoop-3.3.1/sbin/
vim start-dfs.sh 和 vim stop-dfs.sh

HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root

         修改start-yarn.sh,stop-yarn.sh文件,在文件头部添加以下配置

vim start-yarn.sh 和 vim stop-yarn.sh

RN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
YARN_RESOURCEMANAGER_USER=root

四、分发配置,

        4.1、使用rsync分发配置到其他服务器

cd /home
rsync -rvl hadoop root@cdh2:/home/
rsync -rvl hadoop root@cdh3:/home/
cd /home/service
rsync -rvl hadoop-3.3.1 root@cdh2:/home/servers/
rsync -rvl hadoop-3.3.1 root@cdh3:/home/servers/
rsync /etc/profile root@cdh2:/etc/profile
rsync /etc/profile root@cdh3:/etc/profile

        4.2、所有服务器执行以下命令,使环境变量生效

source /etc/profile

五、启动服务

        5.1、hadoop初始化(只需在主服务器执行即可(NameNode节点))

cd /home/servers/hadoop-3.3.4/bin
./hadoop  namenode  -format

有提示以下这行,说明格式化成功

common.Storage: Storage directory /home/hadoop/dfs/name has been successfully formatted

        5.2、启动hadoop

cd /home/servers/hadoop-3.3.1/sbin/
./start-all.sh

启动没报错即可

         5.3使用jps查看服务

<think>我们正在讨论在CentOS 7上部署Hadoop 3.3.4,并推荐稳定版本。根据引用内容,Hadoop 3.3.4是一个稳定版本,并且有详细的部署指南。以下是部署步骤和注意事项: ### 部署环境要求 - **操作系统**: CentOS 7.6+ (64位) - **Java**: JDK 8 (必须,因为Hadoop 3.3.4依赖JDK 8) - **内存**: 建议至少4GB(伪分布式模式),生产环境根据规模调整 - **磁盘空间**: 建议至少50GB ### 步骤1: 安装前置依赖 1. **安装JDK 8**: ```bash sudo yum install -y java-1.8.0-openjdk-devel ``` 配置环境变量(`/etc/profile`): ```bash export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:$JAVA_HOME/bin ``` 然后执行`source /etc/profile`使配置生效。 2. **安装其他依赖**(可选,如果需要编译native code): - 安装CMake(版本>=3.1)[^3]: ```bash # 卸载旧版本 sudo yum erase -y cmake # 下载安装新版本 wget https://github.com/Kitware/CMake/releases/download/v3.25.2/cmake-3.25.2.tar.gz tar -zxvf cmake-3.25.2.tar.gz cd cmake-3.25.2 ./configure && make && sudo make install ``` - 安装Snappy(压缩库)[^3]: ```bash sudo yum install -y snappy snappy-devel ``` ### 步骤2: 下载并解压Hadoop 3.3.4 ```bash wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz --no-check-certificate tar -zxvf hadoop-3.3.4.tar.gz -C /opt/ sudo mv /opt/hadoop-3.3.4 /opt/hadoop ``` ### 步骤3: 配置环境变量 编辑`/etc/profile`或用户目录下的`.bashrc`,添加: ```bash export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 执行`source /etc/profile`使配置生效。 ### 步骤4: 配置Hadoop 进入配置目录:`cd $HADOOP_HOME/etc/hadoop` 1. **配置`hadoop-env.sh`** [^2][^5]: ```bash export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 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 ``` 2. **配置`core-site.xml`** (核心配置)[^2][^5]: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> <!-- 单机模式使用localhost,集群需改为主机名 --> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> <!-- 确保目录存在且有写权限 --> </property> </configuration> ``` 3. **配置`hdfs-site.xml`** (HDFS配置): ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> <!-- 单机模式副本数为1 --> </property> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dfs/data</value> </property> </configuration> ``` 4. **配置`mapred-site.xml`** (MapReduce配置): ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 5. **配置`yarn-site.xml`** (YARN配置): ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration> ``` ### 步骤5: 格式化HDFS并启动 1. **格式化NameNode** (首次安装): ```bash hdfs namenode -format ``` 2. **启动HDFS**: ```bash start-dfs.sh ``` 3. **启动YARN**: ```bash start-yarn.sh ``` ### 步骤6: 验证安装 - 检查进程: ```bash jps ``` 应看到`NameNode`, `DataNode`, `ResourceManager`, `NodeManager`等进程。 - 访问Web UI: - HDFS: `http://<服务器IP>:9870` - YARN: `http://<服务器IP>:8088` ### 稳定版本推荐 - **Hadoop**: 3.3.4 (当前稳定版本,修复了多个已知问题) - **JDK**: OpenJDK 8 (必须) - **操作系统**: CentOS 7.9 (长期支持版本) > ⚠️ **注意**: 生产环境建议使用**完全分布式集群**并配置高可用(HA)[^1]。单机伪分布式仅适用于学习和测试。 --- §§相关问题§§ 1. Hadoop完全分布式集群如何配置高可用(HA)? 2. Hadoop集群如何添加新节点? 3. HadoopHDFS存储策略如何优化? 4. YARN资源调度器(Fair Scheduler/Capacity Scheduler)如何配置? 5. Hadoop集群监控有哪些推荐工具?</think>### 在 CentOS 7 上部署 Hadoop 3.3.4 的稳定方案 #### 一、版本推荐与前置准备 1. **核心组件版本** | 组件 | 推荐版本 | 稳定性说明 | |------------|----------|------------------------------| | **Hadoop** | 3.3.4 | 当前长期支持版本,修复大量已知问题[^1] | | **JDK** | OpenJDK 8 | Hadoop 3.3.4 官方兼容版本[^5] | | **依赖库** | Snappy | 必需的高性能压缩库[^3] | 2. **系统要求** ```bash # 验证系统版本 cat /etc/centos-release # CentOS 7.6+ free -h # 建议 ≥4GB 内存 df -h / # 建议 ≥50GB 磁盘空间 ``` #### 二、详细部署步骤 ##### 1. 安装基础依赖 ```bash # 安装JDK 8 sudo yum install -y java-1.8.0-openjdk-devel # 配置环境变量(/etc/profile) export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export PATH=$PATH:$JAVA_HOME/bin source /etc/profile # 立即生效[^4][^5] ``` ##### 2. 安装Hadoop 3.3.4 ```bash # 下载和解压 wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz --no-check-certificate[^1] tar -zxvf hadoop-3.3.4.tar.gz -C /opt sudo mv /opt/hadoop-3.3.4 /opt/hadoop # 配置环境变量(/etc/profile) export HADOOP_HOME=/opt/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin[^4] source /etc/profile ``` ##### 3. 关键配置修改 ```bash cd /opt/hadoop/etc/hadoop ``` - **hadoop-env.sh** (添加JAVA_HOME和用户)[^2][^5] ```bash export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HDFS_NAMENODE_USER=root # 根据实际用户修改 export HDFS_DATANODE_USER=root export YARN_RESOURCEMANAGER_USER=root ``` - **core-site.xml** (核心配置)[^2][^5] ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/tmp</value> </property> </configuration> ``` - **hdfs-site.xml** (HDFS配置) ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> <!-- 单节点副本数为1 --> </property> </configuration> ``` ##### 4. 初始化与启动 ```bash # 格式化HDFS hdfs namenode -format # 启动HDFS start-dfs.sh # 验证进程 jps # 应显示 NameNode, DataNode, SecondaryNameNode ``` ##### 5. 访问Web UI - **HDFS管理界面**: `http://服务器IP:9870` - **DataNode状态**: `http://服务器IP:9864` #### 三、稳定性增强建议 1. **依赖库优化** ```bash # 安装Snappy压缩库[^3] sudo yum install -y snappy snappy-devel ``` 在`core-site.xml`中添加: ```xml <property> <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.SnappyCodec</value> </property> ``` 2. **权限管理** - 创建专用用户(如`hadoopuser`)替代root操作[^2] - 配置SSH免密登录(集群部署时必需) 3. **日志监控** ```bash # 查看实时日志 tail -f /opt/hadoop/logs/hadoop-*-namenode-*.log ``` > 💡 **生产环境建议**: > 1. 使用**完全分布式集群**部署(至少3节点) > 2. 启用**HDFS HA高可用**模式[^1] > 3. 配置**YARN资源调度**管理计算资源 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值