Hadoop & Spark 集群搭建 理念思想

版本信息:Centos7 + Hadoop 2.7.2 + Spark 1.6.2 + Scala 2.11.8

Hadoop + Spark 集群搭建系列文章,建议按顺序参考:

Hadoop & Spark 集群搭建 理念思想 (不用点了,就是本文)

Hadoop 2.7.2 集群搭建-预备工作

Hadoop 2.7.2 集群搭建

Spark 1.6.2 + Hadoop 2.7.2 集群搭建


友情提示:这是一篇关于意识形态的严肃的文章。只谈理念思想,没有具体操作。

前言

断断续续吭哧吭哧了好几天,终于搞定了Hadoop集群三种模式的搭建,以及Spark+Hadoop集群的搭建,使用的都是最新(稳定)版本,除了官网,网上几乎没有现成资料,也因此遇到很多大大小小的坑,使劲吭哧吭哧,终于都吭哧着爬了出来。安装过程中,顺便把安装详细步骤总结出来,强烈建议按顺序参考,四篇文章的列表在本篇文章开头(对,往上翻,就那四个)。

现在总结理念思想。理念思想很简单,没有任何具体的操作详情,只是表述一种思想和建议。没有耐心看以上4篇详细内容文章的童鞋,可以看一下理念思想就行,按照理念思想来操作,也许比按照详情步骤来做,可能与这个夏天更配。


理念思想

一定要做好安装配置前的预备工作,万不可一开始就上手安装Hadoop和Spark了,否则会遇到很多坑,也会强烈动摇你继续操作下去的决心,我就跳到这个坑了,也是吭哧了好几天的原因。

1.准备若干台电脑,根据集群拓扑结构,修改电脑名称分别master,slave1,slave2,slave3,等等。如果有条件,所有电脑要保证操作系统一样,基本配置一样;

好处:看着爽;其他。

2.在master上修改/etc/hosts文件,添加电脑名与IP的映射关系,文件内容类似下图,然后把该hosts文件复制到其他所有电脑里;

101.X.XX.XX0 master
101.X.XX.XX1 slave1
101.X.XX.XX2 slave2
……

好处:太多了,集群上所有节点命名规范、简洁好记、方便配置、不易出错,还有优雅端庄看着爽,等等,自己体会吧。

3.每台电脑上为Hadoop和Spark创建专门的用户,用户名一样(密码最好也一样),有些系统可能需要用chmod还是啥命令为这个(普通)用户增加一些使用系统命令、操作部分目录的权限,反正我的Centos7不需要。

好处:SSH连接时,若用户名一样,可省略用户名;目录结构前缀一样,如/home/liuyao/,路径配置也就可以一样;看着爽;其他。

4.事先想好要把Hadoop和Spark以及Scala等相关软件安装(解压)在哪个路径,强烈建议要保证集群所有电脑上的目录结构完全一致,比如我把三者都安装在了/home/liuyao/00Hadoop/目录下;

好处:绝大多数配置文件都不用再修改,特别是关于路径的配置,环境变量啊,Hadoop & Spark & Scala 的配置文件啊之类的;很多时候,只需先在master里安装配置好 Hadoop & Spark & Scala ,然后直接把其共同父目录/home/liuyao/00Hadoop通过scp命令分发到各slave即可,如:scp -r /home/liuyao/00Hadoop/ slave1:/home/liuyao/(省略写法:scp -r 00Hadoop/ slave1:~/);看着爽;其他。

5.事先配置好SSH,让集群各节点之间都可以实现公钥登录(无密码登录)。没办法,这个得在各节点上一个一个操作:创建密钥,向其他节点共享公钥。

好处:没有好处,这个必须得做;没有其他。

6.选择Hadoop和Spark版本时需要注意,这也是我遇到的坑之一。我的是hadoop-2.7.2.tar.gzspark-1.6.2-bin-hadoop2.6.tgz,如果上天再给我一次机会,我会把Hadoop换成2.6.x版本,没啥别的原因,因为Spark目前还没出直接支持2.7.x的版本。之前没注意到这,直接上来就安装Hadoop当前的stable版本(2.7.2),结果发现Spark没对应版本,只能安装那个without-hadoop版本,折腾半天发现运行出错,版本不对,幸好换成spark-1.6.2-bin-hadoop2.6.tgz后,目前运行还没出错(不晓得以后会不会有啥bug);

好处:躲避没必要的坑;其他。

7.Hadoop本身有三种运行模式,还有与Spark配合的模式,分别是对同一波配置文件配置不同的参数,可以在配置的原生目录…/etc/hadoop/里建4个文件夹,如Standalone,Pseudo,Full,Spark,复制原生配置文件进去后再配置,到时候用哪个模式就把相应配置文件复制回原生目录。

好处:不容易混乱;不必反复配置;看着爽;其他。

8.Linux下,关于Hadoop和Spark集群搭建,俩词:解压+配置!最人性化的是,这俩哥们的配置文件,在集群master和slave里几乎可以完全一样!所以,强烈建议先只在master里:下载+解压+配置,完了之后再使用scp分发到各slave里,可以分发的包括:Hadoop目录、Spark目录、Scala目录,甚至还有/etc/hosts、/etc/profile等系统文件!不过要小心,极个别配置需要修改,比如我使用同一个Centos7安装U盘安装的三台电脑,jdk位置竟然不一样,master里是java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64,slave里竟然是java-1.8.0-openjdk-1.8.0.91-1.b14.el7_2.x86_64,能看出区别不。。。

好处:方便省事;不容易出错;更好地理解Hadoop和Spark运行机制;当集群节点很多时以上好处特别明显!其他。

9.一定要配置namenode和datanode的本地(临时)目录!可以直接在core-site.xml里配置hadoop.tmp.dir参数,配置到/home/liuyao/00Hadoop/目录下(或别的普通用户就有权限操作的目录),namenode和datanode就是在这个目录下的/dfs/name和/dfs/data里,因为默认的位置是/tmp/下。当然,也可直接配置dfs.name.dirdfs.data.dir参数(可能参数名略有变化);

好处:使用普通用户就有权限操作这个目录;电脑重启后,目录下内容不会被删(据说/tmp/目录里内容会定期被删);其他。

10.不要忘了关闭集群所有节点的防火墙,Centos7使用firewalld代替传统的iptables(应该会有更好的方法的?请大神们指点迷津),否则会出现No Route to Host错误;

好处:没有好处,目前来看必须得做;没有其他。

11.启动集群时,很大几率会出现namenode或datanode进程没启动的错误,最大的原因是与之前产生的临时文件出现了冲突还是啥的,方法:停止Hadoop,删除那些临时文件(rm -rf {hadoop.tmp.dir}/dfs/* --interactive=never),重新格式化namenode,重启Hadoop;

好处:这能有啥好处……

12.待续……


备注

本来想在这么个美好的周日上午一口气写完所有理念思想和避坑指南的,结果被一个哥们催着去吃饭,他说他饿了,要喝羊汤……所以,需要完善和增加的东西下次再写吧~ 对了,谁知道哪里的羊汤好喝啊?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值