hadoop 全分布式部署

本文涉及的产品
云防火墙,500元 1000GB
简介: 作者主页:https://www.couragesteak.com/

1 环境配置

1.1 系统变量

vim /etc/profile
# hadoop environment
export HADOOP_HOME=/usr/local/hadoop-2.8.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

1.2 hadoop-env.sh

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
26 export JAVA_HOME=$JAVA_HOME
34 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop/
source $HADOOP_HOME/etc/hadoop/hadoop-env.sh

2 主节点配置 core-site.xml

vim $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
    <!--配置hdfs默认的命名-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!--配置操作hdfs缓冲区大小-->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
    <!--配置临时目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/bigdata/tmp</value>
    </property>
</configuration>

3 hdfs配置 hdfs-site.xml

需要注意 : 将主机域名替换为自己的域名

vim  $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
    <!--配置副本因子-->
    <property>   
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--配置块大小-->
    <property>
        <name>dfs.block.size</name>
        <value>134217728</value>
    </property>
    <!--配置元数据的存储位置-->
    <property>     
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/hadoopdata/dfs/name</value>
    </property>
    <!--配置datanode数据存放位置-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoopdata/dfs/data</value>
    </property>
    <!--配置dfs检测目录存放位置-->
    <property>
        <name>fs.checkpoint.dir</name>
        <value>/home/hadoopdata/checkpoint/dfs/charlesname</value>
    </property>
    <!--配置hdfs的namenode的web ui地址-->
    <property>
        <name>dfs.http.address</name>
        <value>master:50070</value>
    </property>
    <!--配置dfs的SNN的web ui地址-->
    <property>
        <name>dfs.secondary.http.address</name>
        <value>master:50090</value>
    </property>
    <!--是否开启web操作dfs-->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <!--是否启用hdfs的权限-->
    <property>
        <name>dfs.permissions</name>
        <value>true</value>
    </property>
</configuration>

4 mapreduce配置 mapred-site.xml

cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
    <!-- 指定mr运行在yarn商 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
    </property>
    
    <!--历史服务的通信地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    
    <!--历史服务的web ui通信地址-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
    
</configuration>

5 yarn配置 yarn-site.xml

vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
    <!-- reducer获取数据的方式---指定mapreduce的shuffle -->
    <property>        
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 指定yarn的ResourceManager的地址---指定resourcemanager所在的主机名 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>

    <!-- 日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 日志保留时间 设置7天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>

    <!--指定resourcemanager内部通信地址-->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <!--指定scheduler的内部通信地址-->
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <!--指定rm的resource-tracker的内部通信地址-->
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <!--指定rm的admin的内部通信地址-->
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <!--指定rm的web ui地址-->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

6 配置节点域名

vim /usr/local/hadoop-2.8.4/etc/hadoop/slaves
master
slave1
slave2

7 完成分发任务

vim /etc/hosts
192.168.56.20 master
192.168.56.21 slave1
192.168.56.22 slave2

在两个slave里删除Hadoop目录

slave1: rm -rf /usr/local/hadoop-2.8.4/
slave2: rm -rf /usr/local/hadoop-2.8.4/

完成分发工作:

master:   
scp -r /usr/local/hadoop-2.8.4/ root@slave1:/usr/local/
scp -r /usr/local/hadoop-2.8.4/ root@slave2:/usr/local/

方法2
在master机上执行下列命令,将配置好的hadoop拷贝至slaveX、client。

cat ~/data/2/machines

在这里插入图片描述

for  x  in  `cat  ~/data/2/machines` ; do  echo  $x ; scp  -r  /usr/cstor/hadoop/etc  $x:/usr/cstor/hadoop  ; 

8 启动

启动之前要先在namenode服务器上格式化,只需一次(多次需要删除某个文件)

hadoop namenode –format

8.1.1 全启动(推荐)

 start-all.sh
# 关闭
stop-all.sh

8.1.2 模式启动

start-dfs.sh
start-yarn.sh

8.1.3 单个进程启动

hadoop-daemon.sh start namenode
hadoop-daemons.sh start datanode
yarn-daemon.sh start namenode
yarn-daemons.sh start datanode
mr-jobhistory-daemon.sh start historyserver

9 测试

9.1 查看进程是否启动了:

jps

9.2 查看对应模块的web

http://192.168.56.20:50070

在这里插入图片描述

http://192.168.56.20:8088

在这里插入图片描述

9.3 文件操作

文件列表

hdfs dfs -ls /

创建 xx文件

hdfs dfs -mkdir xx

上传文件

hdfs dfs –put ./***  /

删除文件夹

删除文件,-rm -R 递归删除目录和文件

hadoop fs -rm   删除文件,-rm -R 递归删除目录和文件


10 跑一个程序

yarn jar /usr/local/hadoop-2.8.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount  /input/word.txt /output/01
hdfs dfs –ls /output/01
hdfs dfs –cat /output/01/part-r-00000

11 常见错误处理

WARN ipc.Client

错误:

WARN ipc.Client: Failed to connect to server: 6059master/192.168.56.20:9000: try once and fail.

50070 端口进程 和 9000端口进程没有启动

11.1 查看 hdfs-site.xml

<!--配置hdfs的namenode的web ui地址-->
<property>
    <name>dfs.http.address</name>
    <value>6059master:50070</value>
</property>

11.2 关闭防火墙

# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld.service 
# 禁用防火墙
systemctl disable firewalld.service

还有个防火墙是selinux: 要设置为 vim /etc/selinux/config

SELINUX=disabled

11.3 namenode节点没有启动

cd /usr/local/hadoop-2.8.4/bin/
hdfs namenode -format
相关文章
|
4月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
1374 57
|
7月前
|
Java 关系型数据库 MySQL
新一代 Cron-Job分布式任务调度平台 部署指南
简单易用、超低延迟,支持用户权限管理、多语言客户端和多租户接入的分布式任务调度平台。 支持任何Cron表达式的任务调度,支持常用的分片和随机策略;支持失败丢弃、失败重试的失败策略;支持动态任务参数。
224 106
|
5月前
|
SQL 数据可视化 网络安全
YashanDB分布式可视化部署
本文介绍YashanDB的分布式部署流程,涵盖服务端安装、数据库基本信息与服务器配置、节点信息设置、建库参数调整、环境变量配置及安装结果检查等步骤。通过可视化Web界面操作,详细说明了各环节配置方法和注意事项,确保用户顺利完成数据库集群的搭建与初始化设置。适用于需要分布式数据库部署的场景,提供全面的操作指导。
YashanDB分布式可视化部署
|
11月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
230 2
|
6月前
|
运维 Kubernetes Java
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
本文由仁励家网络科技(杭州)有限公司架构师赵云兴、葛志刚撰写,探讨了公司在优化HR SaaS解决方案时遇到的系统资源浪费和运维成本高的问题。通过引入Koupleless框架,成功将模块体积从500M缩减至5M以下,部署时间从6分钟缩短至3分钟,并大幅节省服务器资源。文章详细介绍了Koupleless的部署方案及优化措施,感谢Koupleless团队的专业支持,使人力家实现了多应用合并部署,降低了运维成本。
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
|
6月前
|
运维 Kubernetes Java
Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
通过引入Koupleless框架,解决了多应用部署中资源浪费和运维成本高的问题,实现了模块瘦身、快速部署及流量控制优化,大幅降低了服务器资源占用和发布耗时,提升了系统稳定性和运维效率。最终,人力家成功实现了多应用的轻量集中部署,显著减少了运维成本。
 Koupleless 助力「人力家」实现分布式研发集中式部署,又快又省!
|
7月前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
396 5
|
7月前
|
人工智能 Kubernetes 异构计算
大道至简-基于ACK的Deepseek满血版分布式推理部署实战
本教程演示如何在ACK中多机分布式部署DeepSeek R1满血版。
|
8月前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
273 7
|
11月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
163 2

热门文章

最新文章

相关实验场景

更多