当前位置: 首页 > news >正文

大数据原生集群 (Hadoop2.X为核心) 本地测试环境搭建二

上一篇补充小提示

根据上一篇安装好虚拟机和系统之后,在安装软件之前我有两个对于虚拟机的注意点想送给大家,大家可以不看,但是后期在虚拟机的使用上或许对你有帮助

一、在安装配置集群的时候,涉及到不同机器之间有关IP地址的设置时,一定要用域名代替ip,因为有些组件不走DNS的话会出一些奇奇怪怪的毛病,而且直接使用IP,在后续虚拟机的移植使用上,将非常麻烦,无论win还是说linux的网卡,对其配置IP时,我们都有着自己的需求和所处网络环境决定要使用的ip网段,而且在VMware虚拟机中ip网络策略,被虚拟机安装时生成的虚拟网卡限制了,就是在cmd窗口查看ip时那块VM…8的网卡,因此一般情况下不可使用其他的网段,除非你用桥接,所以在搭建时直接使用ip,那么后期搭建好的虚拟机被运行在其他机器上使用的时候,改ip都能麻烦死你,所以直接用域名后期迁移虚拟机的时候直接改域名对应的ip就可以了,一步到位

第二个,是迁移虚拟服务器时的网卡注意事项

本篇安装软件版本

配置主机名字
配置域名映射
虚拟机之间的免密
关闭防火墙
同步服务器时间
JavaJDK1.8
scala-jdk 2.11.12 官网下载-》https://scala-lang.org/ 安装和Java一样配置home和path就行
mysql5.6
hadoop2.7.2 单点安装
Hadoop2.x高可用搭建–》https://blog.csdn.net/dudadudadd/article/details/109858613


修改主机名

编辑/etc/sysconfig/network在该文件中修改HOSTNAME属性值
如果你用的是centos7的,则编辑/etc/hostname

三台虚拟机都要修改,我这里分别修改为hdp1、hdp2、hdp3

配置域名映射

编辑/etc/hosts在这个文件中原有的信息不要动,我们在后面追加域名映射就可以了,如:
192.168.83.136 hdp1
192.168.83.137 hdp2
192.168.83.138 hdp3

注意同样的三台虚拟机都要修改,而且一个映射占一行,不要在一行,ip地址和域名之间有一个空格

免密

免密一定要配置,因为涉及到集群之间的相互访问,不用输入密码,不然就连自己访问自己的服务都要密码,而且注意免密操作三台虚拟机都要进行,包括自己对自己免密

第一步:当前所处节点生成密钥

ssh-keygen-trsa

运行上面这个命令之后,会针对当前用户生成密/公钥,不要输入任何东西,直接回车,正常情况下会让你输入三次,什么都不输入的情况下输入三次回车,直到最后一次回车后出现如下图案:

其实它的三次输入,第一次是生成密/公钥的位置,默认是当前用户主目录下.ssh,例如/root/.ssh/id_rsa,第二、三次是输入对密/公钥文件的加密,这样即使文件被其他人拿到手了,没有密码也无法用来做身份认证,不过一般都是空,有权限的话是可以打开看内容的,值得注意的是免密用的都是共钥(id_rsa.pub)

如果你图省事儿,可以运行ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa一步搞的

第二步:当前节点自身的密钥发到对应的服务器上

ssh-copy-idhostname或者 ssh-copy-id username@hostname 一般用上面的。下面的意思的用username用户免密,同时对应用户需要生产过密/公钥

拷贝时一定要包括服务器自己,就是说有多少台虚拟机,那么复制密钥的操作就执行多少次,包括当前虚拟机自己也要拷贝,拷贝时yes之后的密码是接收密钥服务器的同用户密码,一定是和你当前所在节点操作的用户相同,也就意味着免密需要双方访问器都有免密用的用户,这一步就相当于当前节点把自身某个用户的身份密钥发给b节点,并使用b节点上的同用户身份执行操作,但是b节点总不能拿来就让a节点随便认证,所以说需要a节点输入b节点同用户的密码来保证身份的有效性

第三步:测试免密是否成功

sshhdp1(这里是已近拷贝了密钥的服务器)

在其他节点上,用上面这个这个命令登录其他服务器,如果免密成功,会弹出login信息,并在当前的窗口中登录到目标服务器,想要退出输入exit命令,会退出并且弹出logout信息,这就表示免密可以了

最后在强调一遍上面这三步操作完只能算一台机器完事,其他的服务器都要这样操作

第四步:如果你发现有的节点免密没有成功,那么也不用担心,你只需要删除所有节点/home/免密用户/.ssh目录下authorized_keys(记录了当前节点持有那些用户免密用的ssh公钥)和known_hosts(记录了当前节点连接其他服务器时获取到的对方的公钥)文件中涉及到的失败节点记录,以及失败节点下的密/公钥文件,随后重新执行上面的步骤即可,失败节点的密/公钥文件保险起见一定要删除重新随着免密步骤生成

最后狗头保命一下,上面这个免密,是想让大家知道免密的原始底层流程是什么,正式操作不可能一台一台的搞去,使用脚本方式完成免密就OK,方法我也发过:linux脚本方式批量免密

关闭防火墙

linux6及以下运行如下命令

永久关闭防火墙chkconfigiptables off 即时关闭防火墙serviceiptables stop 查看防火墙状态serviceiptables status

linux7及以上运行如下命令

systemctl stop firewalld.service systemctl disable firewalld.service systemctl status firewalld.service

注:不关将影响时间同步及集群安装,且关闭时永久关闭和及时关闭都要运行这样就不需要重启了
还应该注意的是如果在实际的生产环境中我们不是关闭防火墙,而是去进行设置防火墙开放端口等操作

同步服务器时间

https://blog.csdn.net/dudadudadd/article/details/110947177

Java JDK

安装之前使用java –verson 或者rmp命令测试服务器是否有jdk,一般情况下正规的服务器都自带,如有自带的一定要删除,并且是强制删除,否则删不掉,不过按照我之前的那套方法走那么就没有
第一步:上传并解压jdk的安装包到/opt目录下,linux的JDK安装包是一个tar.gz的压缩包,对于linux来说,它的应用安装包,如果以压缩文件结尾的一般都是解压及安装,删除及卸载
第二步:修改配置文件/etc/profile,在该文件中配置环境变量home与path,配置的时候,把路径改成你自己的


第三步:使用source /etc/profile命令重新加载系统配置文件

第四步:最后测试java –version命令,如果正常显示版本信息则安装完毕

第五步:使用scp -r jdk路径 root@目标域名:目标路径命令分发到其他服务器上,并修改其他结点的环境变量,注意目标路径只需要指定到jdk的上一级就可以,jdk的文件夹是自动会创建的,比如你jdk安装在/opt/jdk,那么你目标路径只写/opt就行

Mysql

https://blog.csdn.net/dudadudadd/article/details/110874570

Hadoop

本篇安装的是单点的hadoop,所有集群角色均只有一个,下面的配置内容中所有涉及的节点都装在一个节点上就是官方说的单例模式,如果你需要安装完整的HA模式可以去看我单独出的HA搭建方式,当然你要先安装第三篇的zookeeper,本文中涉及到HA的会单独说,但为防止作者本人遗漏,在搭建时要明白访问单例namenode是配置到端口,而HA配置到Namenode通道名,就例如http://192.168.1.1:9000http://hdp的区别,其中hdp是高可用配置时的通道名,本篇撰写时用的hadoop是2.7.2,你可以下载较新的版本,但不要超过2.X,因为3.X的搭建有点不同

第一步:准备工作,上传hadoop安装包并解压,在解压目录下准备一个datenode的工作文件存放地

tar-zxfhadoop-2.7.2.tarcdhadoop-2.7.2mkdirhadoopData

第二步:进入hadoop安装目录下的的etc/hadoop目录下这是hadoop的配置文件存放地

修改配置文件slaves,文件中写入hadoop集群每台服务器的地址

node1

修改配置文件mapred-env.sh、yarn-env.sh、hadoop-env.sh文件夹中的JAVA_HOME值,保证hadoop运行时的java环境

修改配置文件hdfs-site.xml,这个文件用来指定集群中hdfs副本的数量、namenode辅助服务器,辅助服务器缓解namenode的压力,可以理解成给namenode加了一块内存条或者一个小秘书

<configuration><!--数据的副本数量--><property><name>dfs.replication</name><value>2</value></property><!--指定Hadoop辅助名称节点主机配置--><property><name>dfs.namenode.secondary.http-address</name><value>node1:50090</value></property><!--namenode的web访问端口--><property><name>dfs.namenode.http-address</name><value>node1:50070</value></property><!--数据块大小,单位 B--><property><name>dfs.blocksize</name><value>31457280</value></property><!--namenode与datanode存储多路径配置,且更改datanode磁盘写入规则--><property><name>dfs.datanode.data.dir</name><value>file:///${hadoop.tmp.dir}/dfs/data,file:///${hadoop.tmp.dir}/dfs/data1</value></property><property><name>dfs.datanode.fsdataset.volume.choosing.policy</name><value>org.apache.hadoop.hdfs.server.datanode.fsdataset.AvailableSpaceVolumeChoosingPolicy</value></property><property><name>dfs.namenode.name.dir</name><value>file:///${hadoop.tmp.dir}/dfs/name,file:///${hadoop.tmp.dir}/dfs/name1</value></property></configuration>

修改配置文件core-site.xml,这个文件中核心作用是指定集群中namenode的访问地址

<configuration><!-- NameNode的rpc地址 --><property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><!-- 指定Hadoop运行时产生文件的存储目录,默认是NameNode、DataNode、JournalNode等存放数据的公共目录,配置到现在准备好的路径 --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop-2.7.2/hadoopData</value></property></configuration>

修改配置文件yarn-site.xml,指定yarn相关配置,也就是资源集群资源管理器在那台服务器上运行

<configuration><!--shuffer服务--><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--指定YARN的ResourceManager的地址和端口--><property><name>yarn.resourcemanager.hostname</name><value>node1</value></property><!--单例模式YARN的ResourceManager的端口,配置时必须带节点,不然起不来,应该是开源版本下单例不商用就没整理代码--><property><name>yarn.resourcemanager.webapp.address</name><value>node1:8088</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></configuration>

修改配置文件mapred-site.xml,指定历史记录存放在那个服务器上

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><!--历史服务器端地址--><property><name>mapreduce.jobhistory.address</name><value>node1:10020</value></property><!--历史服务器web端地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value></property></configuration>

第三步:开始初始化,首先格式化并运行namenode,它会启动集群中所有的datenode,并建立心跳机制,格式化方法为在namenode所在节点,调用hadoop的bin目录下的hdfs namenode -format命令进行格式化,之后调用sbin/start-dfs.sh运行完dfs启动命令后一定要jps检查一下hdfs的进程是否都在,有一些极端情况会少一个namenode或者datanode,这种情况可以运行 sbin/start-all.sh 试试

切换到yarn所在服务起上的hadoop安装目录下,运行sbin/start-yarn.sh

第四步:测试,使用浏览器访问namenode所在服务器的50070端口,如hdfs界面正常显示,并可以看到集群中的每个datanode服务器,而且关注点切换到服务器上,调用jsp命令三台服务器上namenode、yarn的进程都有了,这时就表示hadoop集群搭建成功

第五步:配置环境变量

第一篇https://blog.csdn.net/dudadudadd/article/details/109647930

第三篇https://blog.csdn.net/dudadudadd/article/details/109679296

第四篇https://blog.csdn.net/dudadudadd/article/details/109719624

第五篇https://blog.csdn.net/dudadudadd/article/details/109726023

第六篇https://blog.csdn.net/dudadudadd/article/details/109744195

http://www.gsyq.cn/news/1642691.html

相关文章:

  • 水利枢纽三维智能监控技术解析与应用
  • MobaXterm连接RedHat服务器SSH密钥登录失败排查与配置详解
  • 医学影像异常检测:MVFA框架的零样本与少样本实践
  • ICM-42688-P与MKV44F64VLH16在工业自动化中的高性能应用
  • Spring Boot与Vue3前后端RSA加密登录实战:原理、实现与安全优化
  • 工业级传感器与执行器控制方案:基于AD74115H与STM32F765ZI
  • YOLOv12遥感目标检测:MGCM模块创新与应用
  • 洛雪音乐全网音源完全指南:从零开始打造你的个性化音乐库
  • 通义App:Qwen3大模型的终极交互载体与体验中枢
  • 如何重构现有RAG系统:模块化多模态集成技术指南
  • Redis 主从复制,哨兵,集群——(1)主从复制篇
  • SARCLIP框架:多模态预训练提升SAR图像理解
  • Steam ROM Manager:告别游戏库混乱,打造你的终极游戏收藏中心
  • 一键转换PDF、Word、Excel等数十种文档到Markdown:MarkItDown终极指南
  • Wireshark实战:从CTF流量分析到网络安全排查核心技巧
  • Windows上配置完整Linux开发环境(二):Linux发行版Anaconda安装与使用
  • docker-flask-example数据库管理:使用Flask-DB进行迁移与种子数据操作
  • 技术问答:管理和选择不同的R,如何做好R的笔记,使用 openxlsx 包
  • accounting.js技术架构与React集成:现代前端货币格式化解决方案
  • 网线4、6未交叉,导致设备联网有问题
  • VCPToolBox深度解析:从工具调用到AI生存环境的3大范式突破
  • 翻译Self-Prompt Mechanism for Few-Shot Image Recognition
  • Playwright CLI:面向AI编码代理的浏览器自动化完整指南
  • Win11Debloat:三步打造你的专属Windows系统优化方案
  • TPS65263三重降压转换方案在嵌入式系统中的应用
  • 如何快速检测Mac应用是否原生支持Apple Silicon芯片?Silicon工具完全指南
  • 从混乱到优雅:SQL Formatter如何让你的数据库查询代码焕然一新
  • abawuwao实战指南:基于Wan 5B的图像文本到视频AI模型深度解析
  • PCSX2终极指南:在电脑上完美运行PS2经典游戏
  • 如何从huggingface快速下载