小秦哥 发表于 2024-12-15 13:19:06

Hadoop学习心得体会和总结

首先我们先简单了解Hadoop,Hadoop 是一个开源的分布式计算框架。它能在由大量普通商用硬件构建的集群上,高效存储和处理海量数据。Hadoop 核心组件包括 HDFS(分布式文件体系),可将数据分块存储于多节点;MapReduce 编程模型,实现大规模数据集的并行计算。其具有高可靠性、高扩展性、高效性等特点,能应对数据爆炸式增长带来的挑衅。在大数据范畴应用广泛,如互联网数据挖掘、日志分析、商业智能等,为企业从海量数据中提取价值提供了有力支持。然后对于上了这堂课的了解,我以为Hadoop对于我来说蛮难的,虽然就是记住一些下令即可,但是紧跟老师步伐照旧可以跟上一点,通过老师同学帮助作业也完成了,接下来我将选一个章节来简单描述我对Hadoop的学习心得。
Hadoop完全分布式安装

生产环境中,Hadoop都是接纳完全分布式安装,也就是集群摆设。下面是图片可以更深刻的认识。https://i-blog.csdnimg.cn/direct/8ec8435929274af3896afcb1923c7665.png
Hadoop是典型的主从架构。HDFS的NameNode是主,DataNode是从,YARN的ResourceManager是主,NodeManager是从。在正式集群摆设之前,先要做规划,规划好每个主机/节点分别运行Hadoop的哪些进程。如许做,至少有两个好处:1、引导摆设,没有规划图,很可能摆设过程中就容易迷失,一个小小的细节没处理好,可能导致集群启动失败;2、方便日后查询。例如查询哪些进程在哪些节点上运行等。在本节课的过程中也是没有当堂完成,报了很多错,从下午两点上课到晚上八点多才完成,所以可见这个课程的分量
此次摆设的规划如下:(说明:要根据实际虚拟机修改下表的IP地址,每个同学的虚拟机的IP网段可能都不一样。我的是192.168.122.5,而同学们的可能是192.168.100.xxx)
主机IP主机的主机名HDFSYARN192.168.122.5LSH NameNode
DataNode
ResourceManager
NodeMannager
192.168.122.6HSL SecondaryNameNode
DataNode
NodeManager192.168.122.7HLSDataNodeNodeManager 然后接下来预备三台虚拟机:

找到之前安装hadoop的虚拟机的路径
https://i-blog.csdnimg.cn/direct/9320e162bab54e0dbe5b86883a57cefe.png

[*]创建三个文件夹,然后复制步骤1中找到的虚拟机文件,并分别粘贴一份到这三个文件夹中
[*]https://i-blog.csdnimg.cn/direct/6761ab52ffb74b3b91e7390e055fcc20.png
https://i-blog.csdnimg.cn/direct/5dbac13820fb432091f4fabbd46a094b.png
用vmware打开LSH,HSL,HLS文件夹下的虚拟机,并重定名
以打开master为例。首先Player -> 文件 -> 打开... 弹出一个对话框,然后在对话框中,选中要打开的虚拟机,最后将虚拟机进行重定名。

[*]
[*]修改MAC地址

每台装备应该具备唯一的MAC地址(物理地址),为了制止因MAC地址冲突而可能出现的通信问题,必要修改前面步骤得到的三台虚拟机,使得它们具备唯一MAC地址。修改如下图所示(注:修改前要关闭虚拟机)。
https://i-blog.csdnimg.cn/direct/6cb156e8ba7648c2b7e4e39e13b26298.png
具体一些下令分享如下:
https://i-blog.csdnimg.cn/direct/eddc4eeb96c74b289f1793eadf595328.png
接下来是借鉴老师课件进行解说:

[*]修改master、slave1、slave2的主机名和IP的映射
[*]master、slave1、slave2三个主机的/etc/hosts新增的映射记录一样。下图是master的/etc/hosts文件的内容:
[*]https://i-blog.csdnimg.cn/direct/f9c456c311b947b5b2099ec1d0abaec5.png
https://i-blog.csdnimg.cn/direct/76a77699956c45f282505e146bf3379d.png
提示:为了制止手写错误,master的hosts映射设置好后,可以通过scp下令,将master修改好的/etc/hosts文件,同步到slave1、slave2主机上。
https://i-blog.csdnimg.cn/direct/48efe596c5274e98a9d02dff7df3abd6.png
设置免密登录
因为master、slave1、slave2三个节点都是从之前的已经安装好Hadoop伪分布式的虚拟机复制得来,而其时已经设置了免密登录,故不需再设置了。也就是master可以免密登录到master、slave1、slave2
关闭防火墙
同理,之前已经设置不允许防火墙开机自启,默认开机是关闭的,故也不必要操纵。
​​​​​​​删除Hadoop伪分布式数据
因为master、slave1、slave2三个节点都是从之前的已经安装好Hadoop伪分布式的虚拟机复制得来,为了保证整个环境干净,我们必要删除这三个节点HDFS数据路径。
​​​​​​​修改master主机上的hadoop设置文件
不知道hadoop设置文件的路径的,面壁思过。对应设置文件内容如下(注:主机名改为你们自己对应的主机名):
 Hadoop-env.sh设置文件的内容(假如添加过了就没必要再添加一遍source /etc/profile):
https://i-blog.csdnimg.cn/direct/d14e96fc6a7b450296160f0a91843267.png
core-site.xml设置文件的内容:
<configuration>
      <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master</value>
      </property>
      <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/hadoop-3.1.3/data</value>
      </property>
</configuration> hdfs-site.xml设置文件的内容:
<configuration>
      <property>
                <name>dfs.replication</name>
                <value>3</value>
      </property>
      <property>
                <name>dfs.secondary.http.address</name>
                <value>slave1:50090</value>
      </property>
</configuration> yarn-site.xml设置文件的内容:
<configuration>
      <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
      </property>
      <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master</value>
      </property>
      <property>
                <name>yarn.nodemanager.vmem-pmem-ratio</name>
                <value>4.5</value>
      </property>
</configuration>
mapred-site.xml设置文件的内容:
<configuration>
      <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
      </property>
      <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
      </property>
      <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
      </property>
      <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
      </property>
</configuration>

workers设置文件的内容:
master
slave1
slave2
留意:上面的设置当中要修改一些相应的主机名

​​​​​​​将master主机上的hadoop设置文件,同步到其他两个主机上
下图演示了怎样将master主机上的hadoop设置文件同步到slave1上,请自行完成slave2的同步,相关的下令如下:
https://i-blog.csdnimg.cn/direct/09d31f27cf714de8a73b70aea96210d2.png
上图scp下令说明:
https://i-blog.csdnimg.cn/direct/541c54486c784e9da647e875dd30f122.png
​​​​​​​时间同步
hadoop集群各个节点之间的时间应该同等,也就是master当前时间假如是2022-01-01 01:01:01,那么slave1和slave2上也应该是这个时间。假如各个节点之间时间不同等/差别步,那么集群就会一些错误。
ntp(Network Time Protocol,网络时间协议)是一种跟时间设置相关的协议。客户端-服务端架构。
ntp.aliyun.com是阿里云一个公网ntp服务器,执行ntpdate ntp.aliyun.com下令,可以从这个ntp服务器拉取时间并更新当前机器的时间。在master、slave1、slave2上分别执行该下令,即可完成时间同步,此时三个节点的时间是同等的。(最好设置定时任务,每隔一段时间同步下时间)​​​​​​​NameNode格式化
格式化只需格式化一次,以后启动Hadoop集群时,不必要再格式化。在master上执行格式化下令:hdfs namenode -format
​​​​​​​启动hadoop集群
在master上执行start-all.sh下令启动hadoop集群。
https://i-blog.csdnimg.cn/direct/c596d85c19b9472187ead91e8619694e.png
如许就完成了摆设
总结:
学习 Hadoop 课程,犹如开启一场数据处理的奇幻之旅。从最初对其分布式架构的懵懂,到逐渐理解 HDFS 怎样可靠存储海量数据,MapReduce 怎样巧妙地将复杂任务分解并行处理,心中满是探索的喜悦与劳绩知识的充实。
这门课程不但让我掌握了强大的数据处理工具,更培养了我分布式头脑与办理大规模数据问题的本领。在实践中,面对集群搭建的挑衅、代码调试的困扰,我学会了耐烦与坚持,也深刻体会到团队协作在处理大数据项目中的重要性。它为我打开了大数据世界的大门,使我能在这个数据驱动的时代,有足够的底气去挖掘数据背后的价值,为将来在相关范畴的深入发展奠定了坚实基础。老师也是无比敬业,终极竣事这门课程,这就是我的心得体会。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Hadoop学习心得体会和总结