spark分布式集群

使用centOS虚拟机搭建集群,先设置一个虚拟机节点作为master,另一个直接克隆,后修改配置,关闭防火墙,设置hostname,并通过ssh免密码登陆使master直接访问,最后完成集群搭建。

创建虚拟机:

vmware中添加centos的镜像,创建linux虚拟机。作为主节点master。

安装配置

1.下载jdk:jdk-7u79-linux-x64.tar.gz 放入/usr/java

解压:tar zxvf jdk-7u79-linux-x64.tar.gz
设置配置文件 /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

手动修改将系统默认的JDK:

# update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_79/bin/java 300
# update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_79/bin/javac 300
# update-alternatives --config java 

会出现现有版本路径,请你选择:

There are 3 alternatives which provide `java'.
  Selection    Alternative
-----------------------------------------------
*+        1    /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
          2    /usr/lib/jvm/jre-1.5.0-gcj/bin/java
          3    /usr/java/jdk1.7.0_79/bin/java

Press enter to keep the default[*], or type selection number: 

查看版本,是否安装成功

#java -version

    java version "1.7.0_79"
    Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
    Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

然而我使用jps却是没有此命令
是jdk未配置好

 ln -s /usr/java/jdk1.7.0_79/bin/jps /usr/bin

参考:http://linux.it.net.cn/CentOS/CentosBug/2015/0528/15583.html

2.安装配置spark

这里的spark我下载的是spark-1.2.0-bin-hadoop1.tgz
下载地址 http://spark.apache.org/downloads.html
一般spark可使用scala语言,和python。我主要想研究基于python的spark,所以不安装scala。

解压并安装到 /my
tar –zvxf spark-1.1.0-bin-hadoop2.4.tgz

在etc/profile中增加环境变量SPARK_HOME,并使之生效:

export SPARK_HOME=/usr/my/spark-1.2.0-bin-hadoop1
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin 

配置Spark,修改spark-env.sh配置文件:

进入spark的conf目录    
#cp spark-env.sh.template spark-env.sh  
#vi  spark-env.sh  
可添加的很多,可根据情况添加,例如
export SPARK_HOME=/my/spark
export SPARK_MASTER_IP=192.168.61.128
//export MASTER=spark://192.168.61.128我这里master写成大写时报错
15/12/20 22:51:42 WARN AppClient$ClientActor: Failed to connect to master

export master=spark://192.168.61.128

修改conf/slaves文件,将计算节点的主机名添加到该文件

 #cp  slaves.template  slaves
 #vi slaves
 slave

克隆虚拟机

vmware中可以克隆机子,克隆出来作为新节点,为确保正确ifconfig查看ip是否重新分配。我的是不同于master虚拟机的

此时两个节点都构建好了,下面要修改一些配置

1 修改两个机子的hostname和关闭防火墙

#hostname slave

2 修改网关

#vi /etc/sysconfig/network  
NETWORKING=yes
HOSTNAME=master

3 配置hosts文件

将ip与hostname对应的信息写入hosts文件,如图所示:

#vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.61.128 master
192.168.61.129 slave

4 配置完成后重启网卡:

#service network restart

5 关闭防火墙

#service iptables stop

建议将服务器按如下设置:

#chkconfig iptables off  --关闭防火墙开机启动

#chkconfig iptables –list   – 查看状态

两节点无密码登陆ssh

主节点master能无密码访问子节点slave。主要是生成秘钥对:公钥id_rsa.pub 和私钥id_rsa。将master的公钥追加到对应节点的authorized_keys文件里。这样master才能无密码访问对应节点(包括自身)。注意修改.ssh和authorized_keys的权限。

在master上

#cd ~/.ssh

1 .生成秘钥对 (id_rsa和id_rsa.pub)

#ssh-keygen –t rsa 

2 .把master上生成的公钥id_rsa.pub追加到授权的key中

#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3.修改授权key的权限

#chmod 600 ~/.ssh/authorized_keys

master本地可以连接了,接下来就是连其他节点

4.将公钥复制到slave的~/目录下

#scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/  
这里scp ~/.ssh/id_rsa.pub root@192.168.61.129:~/  

5.slave这台机子上将公钥追加到对应~.ssh/authorized_keys里

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys –>追加公钥到授权key中
rm ~/id_rsa.pub –>保险起见,删除公钥

6.修改权限

chmod 600 authorized_keys
chmod 700 ~/.ssh
service sshd restart  -->重启ssh服务

参考 http://jingyan.baidu.com/article/2fb0ba4043124a00f2ec5f0f.html

妹的 ssh愣是行不通 只能通过ip来无密码登陆,通过主机名字就是不行,结果一重启,啥都好了,fuck!!

启动spark

[root@master my/spark]#sbin/start-all.sh

jps查看启动情况或浏览器http://master:8080

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值