hadoop集群搭建详细方法
nanshan 2025-05-30 16:32 18 浏览 0 评论
第一步:搭建配置新的虚拟机
格式化之前先把tmp目录下所有与Hadoop有关的信息全部删除
rm -rf /tmp/hadoop-centos*
开启之后jps只有Java的进程:sudo vi /etc/hosts 里面加 bogon
1.sudo赋权
Root用户 vi /etc/sudoers
/root n(查找下一个结果)
centos ALL=(ALL) NOPASSWD:ALL
2.修改ens33网卡(桥接模式静态IP)
创建软链接
ln –s /etc/sysconfig/network-scripts/ifcfg-ens33 ens33
修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=51248a5b-aece-4777-ab51-7b5e61602180
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.12.206
NETMASK=255.255.255.0
GATEWAY=192.168.12.1
DNA1=219.141.136.10
DNS2=202.106.196.115
DNS3=8.8.8.8
DNS4=114.114.114.114
改完后重启network服务
sudo systemctl restart network
虚拟机上右键-->设置-->网络适配器-->桥接模式
检测是否连接网络 ping www.baidu.com
3.修改主机名
sudo vi /etc/hostname
原来内容全部删除 写入s126
重启虚拟机
4.安装JDK和Hadoop
1.上传文件包
2.解压 tar –zxvf ****
3.创建软链接 ln –s *** hadoop
tar -zxvf jdk-8u121-linux-x64.tar.gz
ln -s jdk1.8.0_121 java
rm -rf jdk-8u121-linux-x64.tar.gz
tar -zxvf hadoop-2.8.0.tar.gz
ln -s hadoop-2.8.0 hadoop
rm -rf hadoop-2.8.0.tar.gz
4.配置环境变量
sudo vi /etc/profile
#java
JAVA_HOME=/home/centos/java
export PATH=$PATH:$JAVA_HOME/bin
#hadoop
HADOOP_HOME=/home/centos/hadoop
Export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
vi ~/hadoop/etc/hadoop/hadoop-env.sh
#java
export JAVA_HOME=/home/centos/java
5.刷新配置文件
source /etc/profile
5.关闭防火墙
sudo systemctl stop firewalld关闭防火墙
sudo systemctl start firewalld开启防火墙
sudo systemctl disable firewalld禁用防火墙(开机不启动)
sudo systemctl enable firewalld使用防火墙(开机启动)
sudo systemctl status firewalld查看防火墙状态
第二步:Hadoop集群搭建
1.独立模式
1、 将hadoop的jar包上传服务器
2、 解压tar包
tar –zxvf ****
3、 创建软连接
ln –s *** hadoop
4、 配置环境变量
[vi /etc/profile]
最下面加上
#hadoop
HADOOP_HOME=/home/centos/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
最后保存文件加载环境变量配置文件
source /etc/profile
5、 修改hadoop环境变量配置文件配置jdk路径
[$HADOOP_HOME/etc/hadoop/hadoop-env.sh]
6、 测试
hadoop version
默认hadoop就是独立模式。
特点:运行任务是一个java进程,就相当于运行一个java程序
2.伪分布式模式配置
修改hdfs配置文件
vi ~/hadoop/etc/hadoop/core-site.xml
cd ~/hadoop/etc/hadoop
[core-site.xml]
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.12.126:9000</value>
</property>
</configuration>
vi ~/hadoop/etc/hadoop/hdfs-site.xml
[hdfs-site.xml]
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
设置ssh免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
检测方式:ssh localhost/主机真实ip
格式化文件系统
hadoop namenode -format
启动文件系统
jps 检测Java开启的进程
start-dfs.sh 启动文件系统(启动了三个java进程)
jps 再次检测Java开启的进程(应该是4个)
配置yarn资源管理器
cd ~/hadoop/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
start-dfs.sh && start-yarn.sh && jps
3.完全分布式
配置/etc/hosts文件(本地静态DNS)
首行加上 : bogon
增加:
192.168.12.201 s201
192.168.12.202 s202
192.168.12.203 s203
1.设置ssh免密登录:
(现在别的主机ssh 主机IP 然后把宿主机复制过去的权限600)
效果:从主机上能通过ssh免密登录
目的:在主机上通过ssh执行命令
设置的方式:
首先给主机设置ssh免密登录,将主机的公钥(id_rsa.pub)通过scp命令发送到其他 主机,在其他主机上将获取到的公钥追加到~/.ssh/authorized_keys。
主机:
ssh-keygen –t rsa –P '' –f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub centos@192.168.12.202:~/.ssh/id_rsa.pub.s201
scp ~/.ssh/id_rsa.pub centos@192.168.12.203:~/.ssh/id_rsa.pub.s201
s202:
s203:
cat ~/.ssh/id_rsa.pub.s201 >> ~/.ssh/authorized_keys
2.shell脚本的操作:
主机写分发脚本cpTo,查看脚本xcall。赋予执行权限。移动到/usr/local/bin目录下,以便我们能在任何地方使用脚本
[cpTo]
#脚本的目的是:修改完了主机的文件以后,可以通过它分发到其他主机,实现同步
#脚本的用法:cpTo 文件(绝对路径/相对路径)
#!/bin/bash
#获取参数的绝对路径
dirname=`cd $(dirname $1); pwd`
basename=`basename $1`
echo ${dirname}/${basename}
for i in s202 s203
do
echo "=================$i ${dirname}/${basename}=================="
#如果其他机器没有父目录创建父目录
ssh $i mkdir -p ${dirname}
#远程拷贝文件
scp $1 ${i}:${dirname}/${basename}
done
[xcall.sh]
#作用是通过ssh远程运行命令,比如查看jps,在比如删除/tmp
#用法:xcall 命令
#!/bin/bash
for host in s201 s202 s203
do
echo "====================echo $host $@==========================="
#ssh远程执行命令
#$@获取所有参数
#source /etc/profile 因为ssh远程执行命令不去加载/etc/profile,所以很多命令没法用
ssh $host "source /etc/profile && $@"
Done
3.软件安装的操作
安装jdk、hadoop、配置环境变量JAVA_HOME、HADOOP_HOME,可以通过xcall脚本来 同步安装
在主机上修改hosts文件,给主机配置所有机器的dns服务,使用cpTo脚本分发到其他 机器,让其他机器也有dns服务
注意:/etc/hosts是root用户的文件,所以需要切换到root执行
dns服务: 可以将域名解析为ip地址。比如ping s201,解析成ping 192.168.12.201
4.配置文件操作
在主机上修改hadoop的配置文件:
[Hadoop-en.sh] [core-site.xml] [hdfs-site.xml] [mapred-site.xml] [yarn-site.xml] [slaves]
通过cpTo脚本进行分发(可以分发上一级目录来全部分发)
1、[hadoop-env.sh]配置javahome
2、[core-site.xml]配置连接url
[core-site.xml]
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s201:9000</value>
</property>
</configuration>
3、[hdfs-site.xml]配置的是副本数
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
4、[mapred-site.xml]配置运行map任务采用的集群资源管理框架
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5、[yarn-site.xml]配置RM的节点和数据传输方式
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s126</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6、[slaves]配置datanode节点和NM节点
s201
s202
s203
5.主机格式化文件系统
只需要在主机格式化文件系统(xcall删除数据目录/tmp/hadoop*,日志文件/logs/*)
启动hdfs文件系统和yarn框架
xcall查看启动是否成功/看web
第三步:配置项目
1、 将要统计的文件(wordcount.txt)上传到hdfs
hdfs dfs –put 本地文件 hdfs目录
hdfs dfs -put wordCount2.txt /user
2、 运行任务
hadoop jar jar包
com.zdjy.bigdata.wordCount.hadoop.WordCountApp hdfs输 入文件
hdfs输出目录
hadoop jar wordCount.jar com.zdjy.WordCountApp /user/wordCount2.txt /saa
3、 查看结果
hdfs dfs –cat hdfs输出目录下的文本文件 (hdfs dfs -cat /saa/*)
4.关闭文件系统
hdfs dfs -mkdir /user
hdfs dfs -ls -R /
hdfs -dfs -put wordCount2.txt /user
hdfs dfs -put wordCount2.txt /user
hdfs dfs -ls -R /
hadoop jar wordCount-0.0.1-SNAPSHOT.jar
com.zdjy.bigdata.wordCount.hadoop.WordCountApp
/user/wordCount2.txt /out
hdfs dfs -cat /out/*
5.在浏览器上看web(sudo systemctl stop firewalld关闭防火墙)
http://192.168.12.206:50070
文件系统:50070
yarn:8088
ssh免密登录与手动单独启动每一个进程
设置ssh免密登录的原因:我们
start-dfs.sh/start-yarn.sh他们都是通过ssh来远程控制每一台主机的进程的启动
[start-dfs.sh]
if [ -n "$HADOOP_SECURE_DN_USER" ]; then
echo \
"Attempting to start secure cluster, skipping datanodes. " \
"Run start-secure-dns.sh as root to complete startup."
else
"$HADOOP_PREFIX/sbin/hadoop-daemons.sh" \
--config "$HADOOP_CONF_DIR" \
--script "$bin/hdfs" start datanode $dataStartOpt
fi
[Hadoop-daemons.sh]
exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_PREFIX" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
[slaves.sh]
for slave in $SLAVE_NAMES ; do
ssh $HADOOP_SSH_OPTS $slave #34;${@// /\\ }" \
2>&1 | sed "s/^/$slave: /" &
if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then
sleep $HADOOP_SLAVE_SLEEP
fi
done
我们手动启动每一个进程
主机启动namenode
hadoop-daemon.sh start namenode
所有机器手动启动datnode
hadoop-daemon.sh start datanode
在主机上手动启动datanode
ssh s202 “source /etc/profile && hadoop-daemon.sh start datanode”
在主机上脚本启动所有datanode
hadoop-daemons.sh start datanode
在主机启动secondarynamenode
主机启动resourcemanager
yarn-daemon.sh start resourcemanager
所有机器启动nodemanager
yarn-daemon.sh start nodemanager
在主机启动所有的nodemanager
yarn-daemons.sh start nodemanager
start-dfs.sh=NN,DNs,2NN
start-yarn.sh=RM,NMs
start-all.sh= start-dfs.sh && start-yarn.sh
>
- 上一篇:Linux 常用命令集合
- 下一篇:Linux 系统启动完整流程
相关推荐
- CentOS 7 搭建 Harbor2.4.1 Docker镜像仓库
-
上一篇文章我们使用了registry镜像来搭建Docker私有镜像仓库,但是使用体验不是很好,没有一个可管理的UI界面,管理很麻烦。本篇文章将介绍一个新的搭建Docker镜像仓库的工具叫做Har...
- 简单认识认识mqtt及mosquitto(mqtt报文解析)
-
某项目中使用了MQTT作为进程间的通信方式,之前没用过,这两篇笔记我们就来一起学习一下这种方式。MQTT的一些介绍以下介绍内容来自《[野火]《LwIP应用开发实战指南》MQTT协议全称是Messa...
- 全源码打造高性能 LNMP 架构: 实战教程(2025最新版)
-
适用场景:企业生产环境、自建Web服务、深度性能调优操作系统:CentOS7/8、RockyLinux、Debian、Ubuntu(本文以CentOSStream9为例)技术栈:N...
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
-
之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...
- Ubuntu24.04.2 企业级MinIO存储系统部署指南
-
一、概要1.1MinIO架构解析MinIO是一款高性能的云原生对象存储系统,采用Golang开发并遵循ApacheLicensev2.0协议。其核心架构基于纠删码(ErasureCode)技...
- 从零打造自己的 国产鸿蒙(OpenHarmony)定制系统-完整可落地流程
-
适用版本:OpenHarmony4.0/5.0Standard目标人群:想在x86PC、RK3568开发板或自有硬件上裁剪、加品牌、预装应用并生成可刷机镜像的开发者/团队目录环境准...
- 一次暂未成功的dify安装经历(dify怎么安装)
-
前几天在阿里云买了一台机,这几天一直在尝试安装dify,到现在还没安装上我是按这个教程装的https://blog.csdn.net/2401_82469710/article/details/14...
- ZLMediaKit教程(五)支持webrtc(webrtc lib)
-
ZLMediaKit系列文章(共六篇):ZLMediaKit流媒体(一)编译安装ZLMediaKit教程(二)主程序和配置文件解析ZLMediaKit教程(三)URL规则ZLMediaKit教程...
- Linux程序安装与管理指南(linux程序安装命令大全)
-
在Linux系统中,安装和管理程序主要通过包管理器和手动编译安装两种主要方式实现。以下是详细的操作指南,涵盖常见发行版(如Ubuntu/Debian、CentOS/RHEL、Fedora等)的用法。一...
- 离线状态下安装 Nginx 各个模块?这篇攻略让你轻松搞定
-
你是不是也在为离线状态下安装Nginx各个模块而发愁?在互联网大厂后端开发工作中,我们常常会遇到一些特殊的网络环境,比如公司内部的离线服务器,或是处于隔离状态的测试环境。当需要在这些离线环境中安装...
- Rust实践:Win10环境下的openssl交叉编译
-
Rust支持跨平台,可以指定生成目标平台,交叉编译也是支持的。当然,想要交叉编译成功,还需要指定平台的编译器(如:msvc、gcc等)。openssl是C语言开发的库,如果在Rust代码中用到open...
- Linux下Blackwell架构显卡(RTX5070/5090)编译PaddlePaddle指南
-
Blackwell显卡架构如RTX5070\5090等显卡当前Paddle预编译版本中包含的GPU架构(即SM架构)是有限的,比如常见的SM75(T4)、SM86(A10)、SM89(...
- 突破操作系统界限,掌握Linux的必备指南
-
#头条创作挑战赛#简介Linux是一种开源的操作系统,它的核心思想是自由和开放。Linux以其稳定性、可靠性和安全性而闻名,被广泛用于服务器和嵌入式设备中。Linux创始人Linux安装在安装Linu...
- Linux日常高频使用的100条命令,强烈建议收藏
-
查看系统信息如何查看系统版本:uname-alsb_release-acat/etc/os-release如何查看系统内核信息:uname-r如何查看系统CPU信息:lscpucat...
- Linux文件系统结构全解析(linux文件结构详解)
-
对Linux新手而言,“一切皆文件”的设计哲学常让人既兴奋又困惑——打开终端输入ls/,看到的bin、etc、var等目录到底有什么用?如何快速定位关键文件?本文将从Linux文件系统的底层逻...
你 发表评论:
欢迎- 一周热门
-
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
手机如何设置与显示准确时间的详细指南
-
NAS:DS video/DS file/DS photo等群晖移动端APP远程访问的教程
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
一加手机与电脑互传文件的便捷方法FileDash
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
- 最近发表
-
- CentOS 7 搭建 Harbor2.4.1 Docker镜像仓库
- 简单认识认识mqtt及mosquitto(mqtt报文解析)
- 全源码打造高性能 LNMP 架构: 实战教程(2025最新版)
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
- Ubuntu24.04.2 企业级MinIO存储系统部署指南
- 从零打造自己的 国产鸿蒙(OpenHarmony)定制系统-完整可落地流程
- 一次暂未成功的dify安装经历(dify怎么安装)
- ZLMediaKit教程(五)支持webrtc(webrtc lib)
- Linux程序安装与管理指南(linux程序安装命令大全)
- 离线状态下安装 Nginx 各个模块?这篇攻略让你轻松搞定
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)