spark集群搭建

来源:互联网 发布:mac windows分区大小 编辑:程序博客网 时间:2024/05/22 10:36
1:JDK,SCALA,HADOOP SCALA 下载路径
http://spark.apache.org/downloads.html
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz
http://mirror.bit.edu.cn/apache/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz


安装设定:
设定/etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_151
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export SCALA_HOME=/usr/share/scala
export HADOOP_HOME=/var/local/hadoop-2.7.4
export SPARK_HOME=/var/local/spark-2.2.0-bin-hadoop2.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin


[root@localhost ~] hostname master
[root@localhost ~] vi /etc/hostname
#localhost.localdomain
master


[root@localhost ~] vi /etc/hosts
192.168.152.138 master
192.168.152.142 node2


配置秘钥登录


A添加用户
[root@localhost ~] useradd spark
[root@localhost ~]# passwd spark
输入密码。

B配置秘钥登录
[root@localhost ~]# vi /etc/ssh/sshd_config
#将54,55行的注释取消,改为:
RSAAuthentication yes
PubkeyAuthentication yes
[root@master ~]# systemctl restart sshd.service
[root@master ~]# su - spark
[spark@master ~]$ ssh-keygen -t rsa
#一路回车
[spark@master ~]$ cd /root
[spark@master ~]$ cd .ssh
[spark@master .ssh]$ cat id_rsa.pub > authorized_keys


set hadoop
[spark@master ~]$ cd $HADOOP_HOME/etc/hadoop
[spark@master hadoop]$ vi slaves
#将slave的主机名加入,每行一个主机名
[spark@master hadoop]$ vi core-site.xml


<configuration>
  <!-- file system properties -->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
        <description>The name of the default file system.  A URI whose scheme and authority determine the FileSystem implementation.  The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implementation class. The uri's authority is used to determine the host, port, etc. for a filesystem.
        </description>
    </property>
    <property>
        <name>fs.trash.interval</name>
        <value>360</value>
        <description>Number of minutes between trash checkpoints.If zero, the trash feature is disabled.
        </description>
    </property>
 
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/spark/hadoop/tmp/</value>
        <description>A base for other temporary directories.</description>
    </property>
</configuration>




[spark@master hadoop]$ vi hdfs-site.xml
#改为
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
        <description>Default block replication.The actual number of replications can be specified when the file iscreated.The default is used if replication is not specified in create time.
        </description>
    </property>
 
    <property>
        <name>dfs.name.dir</name>
        <value>/home/spark/hadoop/hdfs/name</value>
    </property>
 
    <property>
        <name>dfs.data.dir</name>
        <value>/home/spark/hadoop/hdfs/data</value>
    </property>
   <property>
        <name>dfs.permissions</name>
        <value>false</value>
   </property>
</configuration>
[spark@master hadoop]$ vi yarn-site.xml
#改为
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>




Spark安装:
[spark@master hadoop]$ cd $SPARK_HOME/conf
[spark@master conf]$ vi slaves
master
node2




[root@master conf]# cp spark-defaults.conf.template spark-defaults.conf
[root@master conf]# vim spark-defaults.conf


spark.master  spark://master:7077
spark.eventLog.enabled  true
spark.eventLog.dir  hdfs://master:9000/tmp/sparkHistoryLogs
spark.eventLog.compress          true
spark.history.updateInterval     5
spark.history.ui.port            7777
spark.history.fs.logDirectory    hdfs://master:9000/tmp/sparkHistoryLogs


[spark@master conf]$ cp spark-env.sh.template spark-env.sh


export JAVA_HOME=/usr/java/jdk1.8.0_151
export SCALA_HOME=/usr/share/scala
export HADOOP_HOME=/var/local/hadoop-2.7.4
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=192.168.152.38        #master Ip
export SPARK_MASTER_HOST=192.168.152.38
export SPARK_LOCAL_IP=192.168.152.142        #本地IP
export SPARK_WORKER_MEMORY=512M
export SPARK_WORKER_CORES=2
export SPARK_HOME=/var/local/spark-2.2.0-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$HADOOP_HOME/bin/hadoop


3.2 配置Master无密码登录所有node
配置Master节点,以下是在Master节点的配置操作。
1)在Master节点上生成密码对,在Master节点上执行以下命令:
ssh-keygen -t rsa -P ''
生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/root/.ssh"目录下。
2)接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3)修改ssh配置文件"/etc/ssh/sshd_config"的下列内容,将以下内容的注释去掉:
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)


4)重启ssh服务,才能使刚才设置有效。
service sshd restart


5)验证无密码登录本机是否成功。
ssh localhost


6)接下来的就是把公钥复制到所有的Slave机器上。使用下面的命令进行复制公钥:
scp /root/.ssh/id_rsa.pub root@192.168.152.142:/root/
scp /root/.ssh/id_rsa.pub root@Slave2:/root/


接着配置Slave节点,以下是在Slave1节点的配置操作。
1)在"/root/"下创建".ssh"文件夹,如果已经存在就不需要创建了。
mkdir /root/.ssh
2)将Master的公钥追加到Slave1的授权文件"authorized_keys"中去。
cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
3)修改"/etc/ssh/sshd_config",具体步骤参考前面Master设置的第3步和第4步。
4)用Master使用ssh无密码登录Slave1
ssh 114.55.246.77


5)把"/root/"目录下的"id_rsa.pub"文件删除掉。
rm -r /root/id_rsa.pub
重复上面的5个步骤把Slave2服务器进行相同的配置。


3.3 配置所有Slave无密码登录Master
以下是在Slave1节点的配置操作。
1)创建"Slave1"自己的公钥和私钥,并把自己的公钥追加到"authorized_keys"文件中,执行下面命令:
ssh-keygen -t rsa -P ''
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
2)将Slave1节点的公钥"id_rsa.pub"复制到Master节点的"/root/"目录下。
scp /root/.ssh/id_rsa.pub root@192.168.152.138:/root/


以下是在Master节点的配置操作。
1)将Slave1的公钥追加到Master的授权文件"authorized_keys"中去。
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
2)删除Slave1复制过来的"id_rsa.pub"文件。
rm -r /root/id_rsa.pub




配置完成后测试从Slave1到Master无密码登录。
ssh 114.55.246.88
按照上面的步骤把Slave2和Master之间建立起无密码登录。这样,Master能无密码验证登录每个Slave,每个Slave也能无密码验证登录到Master。


[root@master ~]# hadoop namenode -format
[spark@master hadoop]$  $HADOOP_HOME/sbin/start-all.sh
hadoop fs -mkdir -p /tmp/sparkHistoryLogs
[spark@master hadoop]$  $SPARK_HOME/sbin/start-all.sh


$SPARK_HOME/bin/spark-shell --master spark://192.168.152.138:7077


$SPARK_HOME/sbin/stop-all.sh
$HADOOP_HOME/sbin/stop-all.sh


./spark-submit --master spark://192.168.152.138:7077 --deploy-mode client --class com.XXX.spark.controller.DayEndCountController ../lib/spark-1.0-SNAPSHOT.jar
原创粉丝点击