hadoop集群的搭建脚本及构思(N):一个简化的Hadoop+Spark on Yarn集群快速搭建

11 篇文章 0 订阅
4 篇文章 0 订阅

为了一篇正在准备的用spark做文本分析的博文,快速搭建了一个4节点的Spark on Yarn+Hadoop的集群。算是给这个系列的一点简单小结。因为资源的限制,HA的hadoop的集群搭建还要在等一段时间才能来继续了。

由于工作内容变动,有一段时间没有搞环境搭建,这次居然手生了很多,所这里也快速的记录一下自己的步骤来当做文档。

-- 机器配置

4台虚机,一个master,3个slave。
master当做hadoop的namenode和secondary namenode,也是Yarn的resourcemananger,还是Spark的Master节点,所以配置适当高些,4cpu,16g的内存;
slave机是hadoop的datanode和Yarn的nodemanager,还是Spark的worker,根据自己的资源给了2cpu,8g的内存,硬盘多给了点。

-- 环境准备
OS选了Redhat 6.6,之前的经验RH6对Hadoop和Spark支持都没问题,就没尝试RH7了。

因为是快速搭建,就没有再为集群配置不同的用户,直接用root用户搞定一切。


所有的机器都把防火墙给关了,节省时间。在linux里面用命令

chkconfig iptables off

service iptables stop

这次搭搞笑了一把,只跑了第一个chkconfig命令,然后忘了重启了,结果后来环境运行起来,死活没法用web ui去看环境状态,最后发现是防火墙没关。被狂嘲笑。。。


然后把系统自带的openjdk给删了,具体的删法视OS的预装而定,基本都是rpm -qa 先看看是预装的啥jdk,然后rpm再删掉。

删完了,装上Oracle JDK,这次用的是Java7_u75。之前经验是这个版本对hadoop 2.6.×和Spark 1.4之后的都支持。具体安装的步骤就省了,无非就是先下载,再解压,然后配置环境变量,在java -version确认。基本上在master上配一边,然后scp到slave们上,就简单了,不用都一个个的手工敲命令。


Java搞定了后,就是配置ssh免密码登录。之前的博文分析过,hadoop里面只要namenode能免ssh登录datanode就可以了,所以这次就只配置master到3个slave的root账号的免密码ssh登录。具体命令就两个:

1. 先在master机上创立root的rsa code 

ssh-keygen -t rsa
一路回车下去,再

2. 拷贝master的root的rsa code到3个slave上

ssh-copy-id root@slaves
中间会提示输入slaves的密码和是否要接受footprint,就一路yes下去就ok了

3. ssh root@slaves试一试是否真的不要密码了。


-- 安装Hadoop 2.6.0

自己也搞了好几次了,就简化一下步骤,不写命令了

1. 下载预编译好的tar包;

2. 解压缩到自己习惯的地方,我一般都放在 /opt/hadoop里面;

3. 创建dfs的name,data,tmp目录;

4. 把自己在本机上修改好的 /etc/hadoop下面的配置文件拷到 hadoop的 /etc/hadoop里面。具体如何修改就大家自己搜去吧。

5. 然后在master上 把整个hadoop目录和dfs的name,data,tmp也都scp到slave们上,简单方便。

6. 千万记得在启动hadoop之前,先格式化namenode!!!千万记得在启动hadoop之前,先格式化namenode!!!千万记得在启动hadoop之前,先格式化namenode!!!重要的事情说3遍。

7. 这下可以启动hadoop了,也就是 start-dfs.sh和start-yarn.sh。

-- 安装Spark 1.5.2

同上,简化步骤,不写命令。

1. 下载预编译好的tar包;

2. 解压缩到自己习惯的地方,我一般都放在 /opt/spark里面;

3. 修改 /conf目录下的配置文件,也是在本机上做好一套,然后拷到 spark的/conf里面。不复杂,只是记得把JAVA_HOME给加上,尽管官方文档里面没有说一定要配这个。之前就出现过一次,尽管所有机器OS的JAVA_HOME都配了,但是spark里面没加,结果worker就是报错,说找不到java目录,启动失败。

4. 然后同样把master上的整个spark目录给scp到所有的slaves上去,简单方便,其实这个步骤可以和hadoop一起搞。这样就节省了很多在slave机器上的操作。

5.这样就可以启动spark了,sbin/start-all.sh就好了。


-- 验证安装

1. 在master上用jps命令查看进程,应该有4个进程,namenode,secondarynamenode,resourcemanager,master。在slave的机器上用jps查看,应该有3个,datanode,nodemananger,worker。

2. 用浏览器,用master的ip加端口8088和50070来查看yarn和hdfs的情况,或者在Eclipse里面添加一下这hdfs连接试一试。没事就拷两个文件进去玩玩。我再写了个wordcount程序,在eclipse里面直接部署运行,一切正常。

3. 用浏览器,用master的ip加端口8080来查看spark的集群状况。然后我找了个计算pi值的程序,编译成jar包,交给master去跑,一切正常。

到这里验证完成,终于可以开始继续另外一个博文里面的spark mllib的练习了。

 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值