Hadoop分布式存储的体验

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuxuemin1991/article/details/81294689

今天我们来把Hadoop弄到多台机器上,脑补一下手头有500多台机器,大大大老板喊我们去部署一套传说中的大数据平台,好多好多银子,人生小巅峰有木有。啪,打醒,回到现实,我们现在手头只有几台虚拟机。

下面开始动手了 。

 第二台DataNode的部署

 有了之前的准备工作,新增一台DataNode的部署显得很简单,我的新机器取名为gz-bigdata-lw-02.com,在第一台机器中配置好/etc/hosts域名解析,同时配置好和DataNode的免密码登录,方便我们传输文件:

 

图一:域名解析映射

图二:建立免密码登录

接下来,依次同步jdk目录、hadoop安装包目录、/etc/hosts、/etc/profile

 

图三:同步文件夹

在第二台节点上建立软链接和数据目录:

 

图四:软链接和数据目录

接下来,为了使配置生效,在新节点中执行source /etc/profile,然后在任意目录执行启动datanode命令:

图五:DataNode节点启动

我们也可以从ui面板上面看到有两个DataNode节点了,DataNode启动就算完成了。

图六:ui中查看DataNode

这种方式是datanode本来的启动方式,我们不希望每次登陆到从节点中去执行命令,我们可以直接在NameNode中实现一键启动,我们只需要在hadoop配置文件/etc/salves中添加我们的DateNode节点:

图七:从节点的配置

 

图八:感受一下

 

分布式存储

我们来进一步了解一下数据在hdfs文件中的样子;我们注意看之前上传的文件,有个replication是1,BlockSize是128MB,这个信息是表示数据在hdfs中存储了一份,占用了一个文件块。

图九:UI中的存储信息

点击文件名可以看到数据块的信息:

 

 

 

 

图十:UI中的文件亏信息

很自然,我们想找到文件丢到hdfs长什么样子了,还记得我们配置的那个dat目录么,我们通过块的名字去find一波

 

图十一:查看存储的文件块

不出所料,我们的文件果然在里面,内容还保持完好

 

我们调整一下参数,备份数改成了2,文件块大小改成了1m,记得重启集群

 

 

 

 

图十二:调整参数

我们这次上传一个69M的文件,按照我们的块大小,我们预期是68份文件

 

图十三:上传大块文件

 

我们查看ui可以看到块文件从0到了68正好我们的预期,同时注意到两台节点中都有存储,这个其实就是我们的备份配置。

图十四:文件块情况

由此我们可以脑补这么个片段, 数据被丢进hdfs系统中,大块的数据文件被拆分成多个bolck,存储在各个节点中,按照这种存储法则,只要存储节点足够的话,再大的文件也可以被拆分成小文件存储进hdfs中,这就是hdfs中存储的小秘密。

 

让部署更加懒一点

我们发现,部署DataNode的时候,我们只要scp相应的文件就可以了,至于启动,我们也是在slaves中配置了从节点,然后启动。这种事情碰到了平时爱偷懒的我,自然想到,更自动一点,我这边还准备了剩下3台机器,下面我们把部署做得更加简单一点 :

我们还是在01节点里面搞事,先配置和其他节点的域名解析 

图十五:文件块情况

    全部进行免密码登录配置:

 

图十六:免密码登录

获得了root权限的免密码登录之后,我们把需要部署的节点定义成一个数组、把需要做的操作,封装成函数,然后一键执行,就把配置和部署的文件都分发到节点了,达成成就,初级懒人!

 

图十六: 初级懒人秘籍

 然后只要执行脚本,想想我们有500台机器的样子~~

 

小总结和下作业

回想一下部署从节点的方法,基本的套路都是首先打通免密码登录->远程下发配置文件->一键启动。这个办法适用大部分分布式软件的部署,当我们这些操作写到了脚本中之后,可以快速方便地部署到很多台机器上去,你get到了么^^~~

最后我们想想上面留下的几个问题:

  • 在做免密码登录的时候,脚本会提示输入密码,这个地方可以自动化么?

  • 我们在添加节点的时候,还是需要去改脚本,能不能更加方便?

  •  当我们单独部署一个配置文件的时候如何去做 ?

 

这些问题,大家想想,我们再后续的文章中介绍哈~~

未完,待续! 

关注我的其他文章,可以扫描二维码 

没有更多推荐了,返回首页