代码改变世界

Spark集群安装

2016-01-27 12:49  yuejianjun  阅读(277)  评论(0)    收藏  举报

172.16.10.102   slave1

172.16.10.103   slave2

172.16.10.104   master

一. 服务器环境配置

1. 服务器名设置

vim /etc/sysconfig/network

修改为:

NETWORKING=yes

HOSTNAME=master

 

二. 服务安装
1. 分别创建文件目录 

上传文件到服务器

/data/soft/apache-tomcat-8.0.30.tar.gz

/data/soft/hadoop-2.7.1.tar.gz

/data/soft/hbase-1.1.2-bin.tar.gz

/data/soft/jdk-8u45-linux-x64.gz

/data/soft/scala-2.11.7.tgz

/data/soft/spark-1.6.0-bin-hadoop2.6.tgz

/data/soft/zookeeper-3.3.6.tar.gz

解压文件
tar -zxvf /data/soft/apache-tomcat-8.0.30.tar.gz

tar -zxvf /data/soft/hadoop-2.7.1.tar.gz

tar -zxvf /data/soft/hbase-1.1.2-bin.tar.gz

tar -zxvf /data/soft/jdk-8u45-linux-x64.gz

tar -zxvf /data/soft/scala-2.11.7.tgz

tar -zxvf /data/soft/spark-1.6.0-bin-hadoop2.6.tgz

tar -zxvf /data/soft/zookeeper-3.3.6.tar.gz

复制到安装目录

mkdir -p /data/lib/tomcat

mkdir -p /data/lib/hadoop

mkdir -p /data/lib/hbase

mkdir -p /data/lib/jdk

mkdir -p /data/lib/scala

mkdir -p /data/lib/spark

mkdir -p /data/lib/zookeeper

复制文件

cp -rf /data/soft/apache-tomcat-8.0.30/ /data/lib/tomcat/

cp -rf /data/soft/hadoop-2.7.1/ /data/lib/hadoop/

cp -rf /data/soft/hbase-1.1.2/ /data/lib/hbase/

 

cp -rf /data/soft/jdk1.8.0_45/ /data/lib/jdk/

cp -rf /data/soft/scala-2.11.7/ /data/lib/scala/

cp -rf /data/soft/spark-1.6.0-bin-hadoop2.6/ /data/lib/spark/

cp -rf /data/soft/zookeeper-3.3.6/ /data/lib/zookeeper/

 

2. 修改linux配置:#vim /etc/profile 


export JAVA_HOME=/data/lib/jdk/jdk1.8.0_45/
export TOMCAT_HOME=/data/lib/tomcat/apache-tomcat-8.0.30/

export HADOOP_HOME=/data/lib/hadoop/hadoop-2.7.1/

export HADOOP_HOME_WARN_SUPPRESS=1

export HBASE_HOME=/data/lib/hbase/hbase-1.1.2/

export SCALA_HOME=/data/lib/scala/scala-2.11.7/

export SPART_HOME=/data/lib/spark/spark-1.6.0-bin-hadoop2.6/

 

export ZOOKEEPER_HOME=/data/lib/zookeeper/zookeeper-3.3.6/

 

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$SCALA_HOME/bin:$SPART_HOME/bin:$ZOOKEEPER_HOME/bin

保存退出:Esc :wq!

配置生效 : source /etc/profile 或 重启linux: reboot

 

scp /etc/profile root@172.16.10.102:/etc/

scp /etc/profile root@172.16.10.103:/etc/

scp /etc/profile root@172.16.10.104:/etc/
分别执行:source /etc/profile

 

 

1.6 确定JDK的具体版本号,然后将其卸载:

[root@linux ~]# rpm -qa | grep jdk

[root@linux ~]# rpm -qa | grep gcj

libgcj-4.1.2-42.el5

java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

上面先确认jdk的具体版本号,然后使用rpm -e --nodeps命令删除上面查找的内容:

#rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

Complete!

3. 再次检查JDK版本,卸载成功:

[root@linux ~]# java -version

-bash: ./usr/bin/java: No such file or directory

 

重启linux: reboot , java -version 看是否生效

 

 

    1.设置ip地址

    命令:   service network restart

    验证:   ifconfig

 

    2.关闭防火墙

    命令:   service iptables stop

    验证:   service iptables status

 

    3.关闭防火墙的自动运行

    执行命令 chkconfig iptables off

    验证:        chkconfig --list | grep iptables

 

    4设置主机名

    命令:   hostname 查看主机名

        vi /etc/sysconfig/network 修改

        service network restart    重启 (或reboot)

 

hosts设置:vi /etc/hosts

 

99.48.210.228 master

99.48.210.229 d1

99.48.210.230 d2

 

解决Linux中文乱码:

vi /etc/sysconfig/i18n

 

LANG="zh_CN.GB18030"

LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

SUPPORTED="zh_CN.GB18030:zh_CN:zh"

SYSFONT="lat0-sun16"

SYSFONTACM="8859-15"

---------------------------------------

LANG="en_US.UTF-8"

LC_ALL="en_US.UTF-8"

 

然后重启reboot linux

 

 

 

1.8 添加hadoop 组用户

    #删除用户:userdel -r hadoop

 

        #创建用户组hadoop

             /usr/sbin/groupadd hadoop

        #创建用户hadoop 到hadoop 组中

             /usr/sbin/useradd hadoop -g hadoop

                #设置hadoop账号密码:在root下

passwd hadoop

hadoop

             /etc/group文件包含所有组

             /etc/shadow和/etc/passwd系统存在的所有用户名

 

 

1.9 ssh (http://wenku.baidu.com/view/b287bb0b7cd184254b353593.html)

修改每个主机上的/etc/ssh/sshd_config文件,去掉

RSAAuthentication yes 

PubkeyAuthentication yes 

AuthorizedKeysFile .ssh/authorized_keys

前面的“#”。

--------------------------------------------------

每台服务器开通ssh

su elespark
cd /home/elespark/.ssh/
ssh-keygen -t rsa

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

chmod 600 ~/.ssh/authorized_keys

su root
service sshd restart
su elespark
ssh localhost

chmod 700 /home/hadoop/.ssh/ 

--------------------------------------------------

 

    #切换到Hadoop 用户下

    su hadoop

    cd  /home/hadoop/

    ssh-keygen -t rsa

        空密码 

        #在/home/hadoop/.ssh/下,将id_rsa.pub 复制给authorized_keys文件,并给予权限

        cat id_rsa.pub > authorized_keys 

 

       su root

        重启ssh:service sshd restart

        测试 ssh localhost 和ssh namenode,若成功,则可免密码登陆,退出命令exit。注意务必要exit,否则多层嵌套,会晕。

 

1.10  linux设置master和slaver之间无密码访问ssh 

http://blog.163.com/hayash/blog/static/111051720107734744237/

 

ssh文件集群间复制:

在所有salver服务器中:

        su root  

        scp /home/hadoop/.ssh/authorized_keys master:/home/hadoop/.ssh/authorized_keys_d1 //d1为salver的host,即在root下把d1的authorized_keys复制到master服务器中,需要输入root密码,所有salver服务器都做次操作。

        scp /home/hadoop/.ssh/authorized_keys master:/home/hadoop/.ssh/authorized_keys_d2

        //root赋予用户hadoop文件权限:

chmod 644 /home/hadoop/.ssh/authorized_keys_d1

  master服务器中 Su root 下:

    chmod 644 /home/hadoop/.ssh/authorized_keys_d1

    chmod 644 /home/hadoop/.ssh/authorized_keys_d2

 

在master服务器中,把所有salver的authorized_keys_dn 追加到 master的 authorized_keys  中

 

        在master服务器中,  su hadoop

        cat authorized_keys_d1 >>authorized_keys 

        cat authorized_keys_d2 >>authorized_keys 

 

        su root

        service sshd restart //重启ssh

       

        su hadoop

        scp /home/hadoop/.ssh/authorized_keys d1:/home/hadoop/.ssh/authorized_keys //不用登陆的authorized_keys发放到各salver服务器

        scp /home/hadoop/.ssh/authorized_keys d2:/home/hadoop/.ssh/authorized_keys

(手动ftp 把 master 的 authorized_keys 分别传到d1 和 d2 中)

 

    验证各个服务器是否可以无密钥ssh:

        ssh d1

        ssh master

-----------------------------------------------------------------

 

mac ssh key 的获取 pub key

http://blog.csdn.net/yhqbsand/article/details/22763411

 

hadoop 安装

1. 基础文件夹创建

su  elespark

mkdir -p /data/data/hadoop/hdfs/namesecondary   

 hdfs

 mkdir -p /data/data/hadoop/hdfs/name 

 mkdir -p /data/data/hadoop/hdfs/data

 

 mapreduce

 mkdir -p /data/data/hadoop/mapred/mrlocal 

 

master 设置

vim /data/lib/hadoop/hadoop-2.7.1/etc/hadoop/slaves

slave1

slave2

运行hadoop集群任务:

cd /data/lib/hadoop/hadoop-2.7.1

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar pi 20 10

启动hadoop监控:

http://172.16.10.101:8088/cluster

 

Spark安装

Spark配置修改

cd /data/lib/spark/spark-1.6.0-bin-hadoop2.6/conf

1. 配置slaves文件

mkdir slaves

vim slaves

slave1

slave2

2.配置spark-env.sh文件

cp spark-env.sh.template spark-env.sh

export JAVA_HOME=/data/lib/jdk/jdk1.8.0_45/

export SCALA_HOME=/data/lib/scala/scala-2.11.7/

export HADOOP_CONF_DIR=/data/lib/hadoop/hadoop-2.7.1/etc/hadoop/

3.分发配置文件到集群所有服务器

scp slaves slave1:/data/lib/spark/spark-1.6.0-bin-hadoop2.6/conf/

scp slaves slave2:/data/lib/spark/spark-1.6.0-bin-hadoop2.6/conf/

 

scp spark-env.sh slave1:/data/lib/spark/spark-1.6.0-bin-hadoop2.6/conf/

scp spark-env.sh slave2:/data/lib/spark/spark-1.6.0-bin-hadoop2.6/conf/

 

spark集群启动

sudo chown -R elespark:elespark /data/

su  elespark

cd  /data/lib/spark/spark-1.6.0-bin-hadoop2.6/sbin

./start-all.sh

查看集群:http://172.16.10.104:8080/

 

测试集群:

cd /data/lib/spark/spark-1.6.0-bin-hadoop2.6/bin

 ./run-example SparkPi 

 

启动spark-shell控制台

cd  /data/lib/spark/spark-1.6.0-bin-hadoop2.6/bin

./spark-shell

 

 

---------------------------------------------  Spark 分布式部署  ------------------------------------------

设置spark集群管理用户名:elespark     passwd:elespark