今天完成
这两天完成的不多,主要是调通搭建的那个用于测试的大数据集群,完成了将数据写入hbase的部分。在过程中遇到一个问题,就是hbase的client端可以和zookeeper建立会话,但是会话建立后就一直卡在那里没有继续往下执行。一开始以为是zk集群和hadoop集群的ip地址问题,因为这个集群是部署在阿里云上的,所以会有内部ip和公网ip的转换,以前在旧公司用openstack搭大数据测试集群的时候也踩过这样的坑,但结果是,这次不是这个问题。折腾了一会之后,决定网上找一找hbase架构的资料,了解到客户端读取hbase数据时候的流程大概是怎么样的,发现只要在写配置文件的时候一直使用主机名的话,hbase内部也会使用主机名来做各种连接,不是使用到ip地址,所以应该就不是ip的问题了。之后在阅读架构资料的过程中,回想起client端也是直接连接regionserver来直接读取数据的,然后读了一下架构资料,更加确定了。所以在client端读取数据时,需要和regionserver能连得通才行,排除了ip的问题,剩下的就只是端口的问题了。马上用chrome登上hbase的web ui,看了下region server的信息,好像是开放了60020端口来接受client的连接的,突然想到阿里云的安全组里没有开放这个端口,然后马上去开了这个端口。程序马上能够走下去了。
总结下这次的经历,得到一些启发,就是学这些比较大的系统之前,先看看他们的架构和大概的实现方式是很重要的,会在之后的学习或者使用中踩少很多坑,节省很多时间。比如这次,假如我能马上回想起来client是要连接region server的话,就会往是否能够连通region server的方向去想,然后自然会想到阿里云的安全组端口开放问题了。解决这个问题的时间自然就会少很多,因为这个问题搞了我一天的时间啊,一天我可以在mooc上看半套教程,看一个大数据系统的架构了。
还有之前总结到的一个教训,这里也记下来,就是学东西,特别是部署系统什么的,一定要做笔记,就算笔记写的乱,格式乱,也要每一个细节都要记录下来,不然下次再部署的时候,会花费很多时间纠结在这种细节上,而这种细节上的纠结不会为我带来很多的价值。
还有学东西的时候,先有熟路的人带一带会容易入门很多,比如现在我先在mooc上一套课,大概了解了一些业内和该种技术的情况,了解到前人踩过的一些坑,这样再继续学习下去会快很多,比自己去瞎摸快得多得多。我是那种听比看接受得快很多的人,可能是因为小时候阅读少,没有训练到快速阅读的技能吧。所以我还是选择那种有声音和图像的教程去学习会快接受很多,而且我个人不喜欢看纸质书,看不到十分钟就会分神,效率奇低,可能是我不喜欢书翻页麻烦,书的厚度带来的压力,和低着头看书的姿势吧,低头看书真是很不舒服很不自在的,但是看手机或者电脑上看pdf或者网站内容就能很能集中精神,对于这个,我以后也要结合我自己的特点来选择学习的方法才能事半功倍。
将要做
1. mooc上学scala基础教程,spark或者flink都使用到scala
2.看hbase的架构,已经找到一篇说得比较好的文章了 https://mapr.com/blog/in-depth-look-hbase-architecture/
3. 看storm,这次需要比较详细去了解了,防止被负责人问到我
4.上coursera上找一些比较大局观的课程看