1 Star 0 Fork 0

shampoo6 / cjsf-20dsj1

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
hadoop集群配置.md 7.16 KB
一键复制 编辑 原始数据 按行查看 历史
shampoo6 提交于 2023-05-24 11:11 . update

hadoop集群配置

官网文档地址

配置文件文档地址

所有配置文件,可在官网的底部查看,如图:

术语表

术语 含义 备注
master 集群中的主机,分配和调度任务,管理集群名单等工作在主机上完成 集群里对计算机的概念
slave 集群中的从机,接受任务,接受分配与调度 集群里对计算机的概念
deamon 守护进程,后台运行且周期性工作不会消亡的进程
HDFS hadoop distributed file system hadoop 分布式文件系统
NameNode 集群中用于管理 hdfs 的文件命名空间 (包括一些元数据,文件系统块信息和大小等),并接受客户端访问的主节点守护进程 hdfs 守护进程之一
SecondaryNameNode 检查点节点,用于辅助 NameNode 将每次文件变化的跟踪记录写入 NameNode 的文件快照中 hdfs 守护进程之一
DataNode hdfs 中的从节点,数据实际存放在 DataNode 上 hdfs 守护进程之一
YARN hadoop 分布式处理框架的资源管理和作业调度软件
ResourceManager 接受客户端的资源请求,并为 NodeManager 分配调度资源,资源包括 (cpu,硬盘,内存,网络) 等 yarn 守护进程之一
NodeManager 每台电脑上接受 ResourceManager 调度的 hadoop 程序的代理,监控这台电脑 hadoop 的资源使用情况,资源包括 (cpu,硬盘,内存,网络) 等,并汇报给 ResourceManager yarn 守护进程之一

配置 master

配置 hdfs-site.xml

编辑 etc/hadoop/hdfs-site.xml 去掉 datanode 相关配置

<configuration>
    <property>
            <!-- DataNode 上的文件块副本数 参考:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#NameNode_and_DataNodes -->
            <name>dfs.replication</name>
            <value>1</value>
    </property>

    <property>
            <!-- NameNode 命名空间文件存储位置 -->
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop-3.2.4/hadoop_data/hdfs/namenode</value>
    </property>

    <!-- 去掉下面的 datanode 配置 -->
    <!-- <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop-3.2.4/hadoop_data/hdfs/datanode</value>
    </property> -->
</configuration>

清空 namenode 和 datanode 对应目录

删除以下文件夹下所有内容

  • hadoop_data/hdfs/namenode
  • hadoop_data/hdfs/datanode

可以使用如下命令

# 删除 namenode 目录下所有文件
# -r 递归删除
# -f 强制删除
rm -rf hadoop_data/hdfs/namenode/*
# 删除 datanode 目录
rm -rf hadoop_data/hdfs/datanode

配置 yarn-site.xml

编辑 etc/hadoop/yarn-site.xml

<configuration>
    <!-- ... 其他配置 -->

    <!-- 新增配置 -->
    <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.address</name>
            <value>master:8032</value>
    </property>
</configuration>

配置 workers

修改 workers 加入已经存在的 slave 主机名 vim etc/hadoop/workers

例如:

# workers
slave1
slave2
# 注意: 现在的 master 不需要充当 datanode 所以把 master 删除掉

配置 slave

以任意一台 slave 主机为例,执行下列操作,然后将同样的操作应用到其余 slave 主机

配置 hdfs-site.xml

编辑 etc/hadoop/hdfs-site.xml 去掉 namenode 相关配置

<configuration>
    <property>
            <!-- DataNode 上的文件块副本数 参考:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#NameNode_and_DataNodes -->
            <name>dfs.replication</name>
            <value>3</value>
    </property>

    <!-- 去掉下面的 namenode 配置 -->
    <!-- <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop-3.2.4/hadoop_data/hdfs/namenode</value>
    </property> -->

    
    <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop-3.2.4/hadoop_data/hdfs/datanode</value>
    </property>
</configuration>

清空 namenode 和 datanode 对应目录

# 删除 namenode 目录
rm -rf hadoop_data/hdfs/namenode
# 清空 datanode 下所有内容
rm -rf hadoop_data/hdfs/datanode/*

配置 yarn-site.xml

编辑 etc/hadoop/yarn-site.xml

<configuration>
    <!-- ... 其他配置 -->

    <!-- 新增配置 -->
    <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.address</name>
            <value>master:8032</value>
    </property>
</configuration>

在 master 上启动 hdfs 和 yarn

格式化 hdfs

hdfs namenode -format

启动

start-dfs.sh && start-yarn.sh

启动后使用 jps 查看 java 进程是否存在以下内容

NameNode
SecondaryNameNode
ResourceManager

然后在 slave1slave2 上运行 jps 查看是否存在如下进程

DataNode
NodeManager

存在进程也不意味着启动成功,所以查看下网页看看:

hadoop hdfs web ui 网址: http://master:9870

yarn web ui 网址: http://master:8088

若访问不成功,可以替换 master 为自己的 ip 试试

最后查看 nodes 菜单中,是否存在节点,如图:

1
https://gitee.com/shampoo6/cjsf-20dsj1.git
git@gitee.com:shampoo6/cjsf-20dsj1.git
shampoo6
cjsf-20dsj1
cjsf-20dsj1
master

搜索帮助