搭建云服务器Hadoop集群/伪分布

简介: Linux 系统搭建云服务器 Hadoop 集群 分为六大步骤 新增用户 下载安装 配置 SSH 免密登录 修改配置 初始化、启动与停止 一、 新增用户 hadoop useradd -d /home/hadoop -m hadoop usermod -a -G root hadoop passwd hadoop 二、 下载安装 Hadoop-3.

Linux 系统搭建云服务器 Hadoop 集群

分为六大步骤

  1. 新增用户
  2. 下载安装
  3. 配置 SSH 免密登录
  4. 修改配置
  5. 初始化、启动与停止

一、 新增用户 hadoop

useradd -d /home/hadoop -m hadoop
usermod -a -G root hadoop
passwd hadoop
AI 代码解读

二、 下载安装

(所有云服务器都要执行)

JDK8

sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
AI 代码解读

Hadoop-3.0.1

cd ~
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.0.1/hadoop-3.0.1.tar.gz
mv hadoop-3.0.1.tar.gz /home/hadoop/
cd /home/hadoop/
tar -xzvf hadoop-3.0.1.tar.gz
chown hadoop hadoop-3.0.1 -R 
AI 代码解读

三、 配置免密登录

编辑 /etc/hosts

(下面的 IPn 表示如 192.168.1.1 格式的云服务器外网 IP 地址。注意,如果是指向本机的 IP,请用内网 IP 地址代替)

IP1 master
IP2 slave1
IP3 slave2
AI 代码解读

切换到 hadoop 用户生成 id_rsa.pub

su hadoop
cd ~
ssh-keygen -t rsa
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
chmod 700 /home/hadoop/.ssh
AI 代码解读

    chmod 644 /home/hadoop/.ssh/authorized_keys

---以上命令所有云服务器都要运行---

交换共享 id_rsa.pub 的内容

(如果搭建伪分布模式,则可以略过交换共享这一步,直接进行 ssh 的测试)

master 云服务器操作

scp /home/hadoop/.ssh/authorized_keys slave2:/home/hadoop/.ssh/
AI 代码解读

slave1 云服务器操作

scp /home/hadoop/.ssh/authorized_keys slave3:/home/hadoop/.ssh/
AI 代码解读

slave2 云服务器操作

scp /home/hadoop/.ssh/authorized_keys master:/home/hadoop/.ssh/
AI 代码解读
  • 这一步的最终目的是让所有云服务器的 authorized_keys 内容都包含各自的 id_rsa.pub 信息,且内容相同。

测试结果

master

ssh slave1
quit
ssh slave2
quit
AI 代码解读

slave1

ssh master
quit
ssh slave2
quit
AI 代码解读

slave2

ssh master
quit
ssh slave1
quit
AI 代码解读
  • 需要确保所有云服务器能够相互 ssh 通过。
  • 第一次进行 ssh 需要密码登录。输完密码之后,选择 yes 保存记录。之后就不再需要输入密码登录了。
  • 如果出现异常情况,可重启服务再尝试:sudo service sshd service

四、 修改配置文件

/etc/profile 配置环境变量

export JAVA_HOME=/usr/lib/jvm/jre
export HADOOP_HOME=/home/hadoop/hadoop-3.0.1/
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib:$JAVA_HOME/bin
AI 代码解读

使环境变量生效

source /etc/profile
AI 代码解读

/home/hadoop/hadoop-3.0.1/etc/hadoop/

(更详细的配置参见 官方文档

cd ~/hadoop-3.0.1/etc/hadoop
ls
AI 代码解读
  • 发现很多配置文件,其中

(1)core-site.xml 添加

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>
AI 代码解读
  • 设置 HDFS NameNode 的 URI 为 IP1:9000
  • 设定了 I/O 文件缓存容量

(2)hdfs-size.xml 添加

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop-3.0.1/hdfs/name</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:9001</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop-3.0.1/hdfs/data</value>
    </property>
</configuration>
AI 代码解读
  • 设定 Namenode 信息存储目录
  • 设置副本数为 2
  • 设置 Secondary NameNode URI 为 IP2:9001 (slave1 <=> IP2)
  • 开启 WebHDFS 模块
  • 设定 DataNode 的目录路径

(3)yarn-site.xml 添加

<configuration>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>

    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>2048</value>
    </property>

    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
    </property>
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
AI 代码解读
  • 设定客户端提交任务的 URI 为 IP1:8032
  • 设定主程序资源获取的 URI 为 IP1:8032
  • 设定 NodeManager URI 为 IP1:8033
  • 设定 ResourceManager 的 Web 界面 URI 为 IP1::8088
  • 以上4点配置可不设定,本身有默认值
  • 设定每个任务所需最小内存为 512MB
  • 设定每个任务所需最大内存为 2048MB
  • 设定 NodeManger 可使用的内存为 1024MB
  • 设定如果任务超过内存限制,则自动杀死(kill)该任务。

(4)mapred-site.xml 添加

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>
AI 代码解读
  • 任务历史默认端口也是 10020
  • 任务历史 Web 界面端口也是 19888

(5)编辑 hadoop-env.sh

约第 54 行的位置修改为

export JAVA_HOME=${JAVA_HOME}
AI 代码解读

(6)在同一目录下创建文件 masters 和 workers

masters 内容为
IP1
AI 代码解读
workers 内容为
IP2
IP3
AI 代码解读

五、 初始化

NameNode 格式化

su hadoop
hdfs namenode -format
AI 代码解读

启动

start-dfs.sh
start-yarn.sh
AI 代码解读

或者

start-all.sh
AI 代码解读

任务历史进程

mr-jobhistory-daemon.sh start historyserver

mr-jobhistory-daemon.sh stopt historyserver
AI 代码解读

七、其他

  1. 注意不要每次启动都格式化,导致 NameNode 与 DataNode 的 clusterID 不一致而启动失败;
  2. 如果一定要格式化,需要删除配置文件中指定在运行时生成的文件夹,如 hdfs/namehdfs/datatmp(在 Hadoop 安装目录下)。
  3. 可查看 hadoop 安装目录下的 logs 日志文件夹排错
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
946
分享
相关文章
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
324 6
基于云服务器的数仓搭建-集群安装
本文介绍了大数据集群的安装与配置,涵盖Hadoop、Zookeeper、Kafka和Flume等组件。主要内容包括: 1. **数据模拟** 2. **Hadoop安装部署**:详细描述了HDFS和YARN的配置,包括NameNode、ResourceManager的内存分配及集群启动脚本。 3. **Zookeeper安装**:解压、配置`zoo.cfg`文件,并创建myid文件 4. **Kafka安装**:设置Kafka环境变量、配置`server.properties` 5. **Flume安装**:配置Flume采集日志到Kafka,编写启动脚本进行测试。
104 1
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
263 1
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
大数据-78 Kafka 集群模式 集群的应用场景与Kafka集群的搭建 三台云服务器
181 6
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
113 4
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
Hadoop-37 HBase集群 JavaAPI 操作3台云服务器 POM 实现增删改查调用操作 列族信息 扫描全表
70 3
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
Hadoop-36 HBase 3节点云服务器集群 HBase Shell 增删改查 全程多图详细 列族 row key value filter
94 3
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
1955 1
阿里云ECS搭建禅道
由于最近换工作,发现新公司问题记录跟踪还在用excel,于是强烈建议使用项目管理工具,并获得批准,在比较了禅道和JIRA,还是选择了禅道,禅道的上下级联的层级关系可能更符合国人的使用习惯,秉承着谁出主意谁干活儿的国际惯例,这个事情也就落到我的头上,于是在阿里云从头开始搭建,这里作个记录。
583 0
阿里云ECS搭建禅道
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等