完全分布式Hadoop搭建指南

张开发
2026/4/7 10:59:26 15 分钟阅读

分享文章

完全分布式Hadoop搭建指南
完全分布式Hadoop搭建指南前文回顾我们已经完成了单机版的Hadoop安装基本的hdfs命令也可以操作练习了具体的hdfs指令可以参考Hadoop官网的文档多多操练必有大益Hadoop官网1、删除单机hadoop的数据和相关日志name、data、temp、log、root根目录下的tmp尽量删干净避免重做时数据干扰:⚠️工作中禁止删除name和data中的数据高风险高价值的数据[rootc001 ~]# cd /opt/bigdata/hadoop-2.7.1/[rootc001 hadoop-2.7.1]# cd hdfs/name/[rootc001 name]# rm -rf *[rootc001 name]# cd ../data/[rootc001 data]# rm -rf *[rootc001 data]# cd ..[rootc001 hdfs]# cd ..[rootc001 hadoop-2.7.1]# cd temp/[rootc001 temp]# rm -rf *[rootc001 temp]# cd ../logs/[rootc001 logs]# rm -rf *[rootc001 logs]# cd /tmp/[rootc001 tmp]# rm -rf *2、配置hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.100.101 c001192.168.100.102 c002192.168.100.103 c003以三台物理、虚拟设备为例实际按需和按能力添加3、新机切换源/etc/yum.repo.d/CentOS-Base.repo:⚠️修改前记得先备份有备无患4、安装基础依赖yuminstallgcc perl autoconf libaio lrzsz-y#习惯使用vim的可以在安装vim、否则就用自带的viyuminstallvimgcc中文名称GNU C 语言编译器用途Linux 下最核心的C/C 代码编译工具用于把源代码编译成可执行程序安装大部分源码软件都必须依赖它。perl中文名称Perl 脚本语言解释器用途运行 Perl 脚本常用于系统管理、文本处理、日志分析、自动化脚本很多 Linux 自带工具和服务依赖它。autoconf中文名称自动配置脚本生成工具用途源码编译自动化配置工具执行./configure时必须用到用于检测系统环境、生成编译规则是安装源码包的必备工具。libaio中文名称异步输入输出库用途提供异步 I/O 功能支持大幅提升数据库MySQL/Oracle、高性能服务的磁盘读写效率是高性能应用的依赖库。lrzsz中文名称文件上传下载工具包用途Linux 终端下通过X/Y/Zmodem 协议上传 / 下载文件常用命令rz上传文件到服务器、sz下载文件到本地。5、关闭防火墙临时关闭systemctl stop firewalld 永久关闭systemctl disable firewalld 查看防火墙状态systemctl status firewalld:‍♂按顺序执行避免永久关闭失败下次重启时防火墙在此打开6、安装JDK6.1 gz包解压的绿色版方式[rootc001 ~]# scp -r /usr/local/java rootc002:/usr/local/[rootc001 ~]# scp -r /usr/local/java rootc003:/usr/local/在另外两台配置环境变量#jdk环境变量exportJAVA_HOME/usr/local/javaexportPATH$PATH:$JAVA_HOME/bin#mysql环境变量exportMYSQL_HOME/usr/local/mysqlexportPATH$PATH:$MYSQL_HOME/bin#hadoop搭建exportHADOOP_HOME/opt/bigdata/hadoop-2.7.1exportPATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin记得刷新profilesource /etc/profile6.2 通过yum安装的java1.8[rootc001 ~]# scp -r /usr/lib/jvm/ rootc002:/usr/lib/[rootc001 ~]# scp -r /usr/lib/jvm/ rootc003:/usr/lib/要把整个jvm目录都搬过去#JAVA_HOME配置exportJAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64exportJRE_HOME$JAVA_HOME/jreexportPATH$JAVA_HOME/bin:$PATH#MYSQL配置exportMYSQL_HOME/usr/local/mysqlexportPATH$PATH:$MYSQL_HOME/bin#hadoop配置ulimit-n65535ulimit-u65535#Hadoop环境变量exportHADOOP_HOME/opt/bigdata/hadoop-2.7.1exportHADOOP_CONF_DIR$HADOOP_HOME/etc/hadoopexportPATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin7、创建Hadoop安装路径[rootc002 ~]# mkdir -p /opt/bigdata[rootc003 ~]# mkdir -p /opt/bigdata8、配置多机SSH免密钥登入:⭐️⭐️ ⭐️清除1号机之前的单机hadoop原有秘钥[rootc001 ~]# pwd/root[rootc001 ~]# ls -al总用量44dr-xr-x---.5root root40963月2409:39.drwxr-xr-x.17root root40963月2410:21..-rw-------.1root root8873月2011:20 anaconda-ks.cfg -rw-------.1root root31803月2410:21 .bash_history -rw-r--r--.1root root1812月292013.bash_logout -rw-r--r--.1root root17612月292013.bash_profile -rw-r--r--.1root root17612月292013.bashrc -rw-r--r--.1root root10012月292013.cshrc -rw-------.1root root1633月2015:35 .mysql_history drwxr-xr-x.2root root383月2014:47 .oracle_jre_usage drwxr-----.3root root183月2014:33 .pki drwx------.2root root763月2310:46 .ssh -rw-r--r--.1root root12912月292013.tcshrc -rw-------.1root root26593月2409:39 .viminfo[rootc001 ~]# cd .ssh/[rootc001 .ssh]# ll总用量16-rw-r--r--.1root root3913月2310:46 authorized_keys -rw-------.1root root16753月2310:46 id_rsa -rw-r--r--.1root root3913月2310:46 id_rsa.pub -rw-r--r--.1root root8863月2409:54 known_hosts[rootc001 .ssh]# rm -rf *8.1 三台主机依次生成私钥ssh-keygen-trsa-P-f~/.ssh/id_rsa使用FinalShell等任何的Shell工具都连上虚拟机同时操作避免错漏[rootc001 .ssh]# cat id_rsa.pub查看并报错私钥ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYnKf1mcNITJqn/OVdGcVMdCkUYYv6up/B6aRh1XtrNaaJoK/Nl CWi1/8qgYY398dXtCwrBMH3oHWYo818TnMI/IWiNcr8/nZSA90QtSfFp6brp8YhdAp9ot36n83pp7q0II NrJniy22MymVbgPUkvlkdaBUYQtR3hcfawTUit6H1puCgnks1sCaDKXkaqmhhCATog 7A2EFDqbSEctFjA37CIU/UnP8R0xj2CaeNljW9JWkWIOd0ARl9w8MFI/9nAMTLJiHGGdvS0ir9A3nl9 3m3EU6bN9ffmd9hEDj5wbr2kwIfLU7hsCkFU5SiBm2eUVLAd rootc001 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDvXe409IfsXDmRuVaHacM43xZEa/UKdQMkIvvx8TFBw/QWkMnKj eLYalxuZi7TJjKmGs1IhnqgQjfiV1TC1F2oYzn5OMGhnbL/hytTOAAtT8Z2dzsLd/R5A/UXC2sxxFwmc3 1IGyedcc6T3FBQMcLBNHCpUui3zCoargDFl1aL7rminE0h8jevb34qkq3taBAmLlHxhXn zIL5rDM6iIDO3zFyAkv6E3WVa4cbRha/49FGqcNpbjJXn8NoKIXubnP6QyDF2tnNrkwi2NRHqW2hmhSkR xrqfVxuItsVo6Ty8/urf4Pmc/hyt2PI0xOW/uP8a3pwVdnYj rootc002 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHzp02SJMCxhfl3Q4nePJW16GWqrZCXpSH76qThLwZpOeW8Bbm Sywi5Bg8fMdL1Bs32JuiJCiMgtOxokoL8rvdo5wvvlE3BR6YB1Oh0sCyEB0vk7gdDjTjyH2oBXfX8 djV7fM/CGWTLXPjeFOsB10OcnW3ZCdb/KmJMurbPvoSHShdPqKYr0HmoAtsbnZ47gO YPniV15a5oB0lab/KRyl7LJYqgsgsZm7ynfaMoIfyoz7GRgZU811G82tY/4VxG7rUcuk4ilRrCv6/F xkouoGmzzZcnJWmbSaDebGp7U50Rrh9vXJzBjhx6hB4K/213 rootc0038.2 创建公钥文件[rootc001 .ssh]# touch authorized_keys8.3 分发公钥到其他主机[rootc001 .ssh]# scp authorized_keys rootc002:/root/.ssh/[rootc001 .ssh]# scp authorized_keys rootc003:/root/.ssh/9、同步hosts文件到其他主机[rootc001 /]# scp /etc/hosts rootc002:/etc/[rootc001 /]# scp /etc/hosts rootc003:/etc/10、验证SSH免密登入效果应该能达到ssh c00*,丝滑切换第一次可能需要输入‘yes’如失败检查hosts文件配置内容有没有错分发有没有成功路径对不对不放心主机器C001reboot试试重启大法不可忽视[rootc001 ~]# ssh c002 [rootc002 ~]# ssh c001 [rootc001 ~]# ssh c003 [rootc003 ~]# ssh c00211、配置slaves[rootc001 ~]# cat /opt/bigdata/hadoop-2.7.1/etc/hadoop/slavesc001 c002 c003⚠️如果原始文件中有关于localhost的配置删除本人启动时出现了manager节点启动失败删除后重试丝滑启动可能是这个原因也可能是我的内存占用过多。12、分发Hadoop到其他机器[rootc001 ~]# scp -r /opt/bigdata/hadoop-2.7.1 rootc002:/opt/bigdata/[rootc001 ~]# scp -r /opt/bigdata/hadoop-2.7.1 rootc003:/opt/bigdata/13、 在此格式化hadoop的配置hadoop namenode-format只要在namenode上格式化就行14、验证#namenode节点上启动Hadoop服务start-all.sh#依次在各节点上jps查看服务[rootc001 ~]# jps2320NameNode2592SecondaryNameNode2832NodeManager2737ResourceManager2440DataNode3119Jps[rootc002 ~]# jps19412NodeManager19508Jps19317DataNode[rootc003 ~]# jps2272NodeManager2177DataNode2369Jps

更多文章