Spark集群环境配置

来源:互联网 发布:如何评价裸儿 知乎 编辑:程序博客网 时间:2024/06/03 16:20

  • 申请了三个虚拟机
          Host my0
       HostName 10.0.61.13
       Port22
       User root
Host my1
       HostName10.0.61.29
       Port22
       User root
Host my2
       HostName10.0.61.38
       Port22
       User root 
          系统环境皆为fedora,系统上原有的java不可用,故删除掉
          $ yum -y remove *java  移除所有包含java的软件包,并删除依赖其的包
          $ rpm -qa | grep *java  查询是否还有包含java的已经安装的软件包
          rpm和yum都能用来安装软件,但是使用yum不用解决软件包的依赖关系问题,而使用rpm则需要手动解决包的依赖关系
  • ssh连接虚拟机后,一段时间不用就会断掉连接,可以在/etc/ssh/sshd_config中修改,该文件是ssh server的整体设置
          ClientAliveInterval60
ClientAliveCountMax86400
Spark集群的配置
  • 1.安装JDK
               官网下载JDK压缩包,解压后设置环境变量,可在/etc/profile中添加,推荐在/etc/profile.d中添加脚本,这样要添加和移除环境变量就不用修改/etc/profile文件,添加和删除相应的脚本即可,并且方便写脚本对Worker节点统一配置。在/etc/profile.d/目录下创建java.sh脚本
export JAVA_HOME=/home/ruijun/jdk1.8.0_60
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/jre/lib/dt.jar:${JAVA_HOME}/jre/lib/tools.jar
               $ source /etc/profile
               $ java -version 即可看到java的版本信息
  • 2.安装Scala
               下载scala压缩包,解压后设置环境变量,同样在/etc/profile.d/目录下创建scala.sh脚本
export SCALA_HOME=/home/ruijun/scala-2.10.5
export PATH=${SCALA_HOME}/bin:$PATH
               $ source /etc/profile
  • 3.配置ssh免密码登陆
               在~/.ssh/目录下创建config文件 
Host my1
       HostName10.0.61.29
       Port22
       User root
Host my2
       HostName10.0.61.38
       Port22
       User root
               设置hostname,这样就可以用ssh my1代替 ssh root@10.0.61.29了
               在Master节点上执行
                    $ssh-keygen -t rsa
               分发Master的公钥:
                    $scp ~/.ssh/id_rsa.pub my1:/home/
               登陆Worker节点:
                    $ cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
               其他Worker执行同样的操作
               配置完毕如果Master仍然不能访问Worker,可以修改Worker的~/.ssh/authorized_keys 文件的权限,ssh对改文件的权限有严格的要求,权限码为600,命令为:$ chmod 600 ~/.ssh/authorized_keys
  • 4.安装Hadoop
               $ sudo useradd hadoop
               官网下载压缩包,解压
               $ tar -xvf hadoop-2.6.0.tar
               $ mv hadoop-2.6.0 hadoop
               $ chown -R hadoop:hadoop hadoop
               $ mkdir /home/ruijun/hadoop/dfs
          1)配置Hadoop环境变量
               在/etc/profile.d/目录下添加hadoop.sh脚本
export JAVA_HOME=/home/ruijun/jdk1.8.0_60/bin/java
export HADOOP_INSTALL=/home/ruijun/hadoop
export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin:$PATH
export HADOOP_MAPRED_HOME=${HADOOP_INSTALL}
export HADOOP_COMMON_HOME=${HADOOP_INSTALL}
export HADOOP_HDFS_HOME=${HADOOP_INSTALL}
export YARN_HOME=${HADOOP_INSTALL}
              $ source /etc/profile
           2)配置hadoop-env.sh文件
                $ pwd
                     /home/ruijun/hadoop/etc/hadoop
                $ vim hadoop-env.sh
# The Java implementation to use
export JAVA_HOME=/home/ruijun/jdk1.8.0_60
           3)配置yarn-env.sh
               $ vim yarn-env.sh
# Java Home
export JAVA_HOME=/home/ruijun/jdk1.8.0_60 
          4)设置slaves节点,ip或者host
               $ vim /etc/hosts 
               设置slaves的ip到host的映射
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
10.0.61.13      master
      10.0.61.29      slave1
10.0.61.38      slave2
               $ vim slaves
slave1
slave2
          5)配置core-site.xml
               
<configuration>
       <property>
               <name>fs.defaultFS</name>
               <value>hdfs://master:9000/</value>
       </property>
       <property>
                <name>hadoop.tmp.dir</name>
               <value>file:/home/ruijun/hadoop/tmp</value>
       </property>
</configuration>
             6)配置hdfs-site.xml
<configuration>
   <property>
       <name>dfs.namenode.secondary.http-address</name>
       <value>master:9001</value>
   </property>
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/home/ruijun/hadoop/dfs/name</value>
   </property>
   <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/home/ruijun/hadoo/dfs/data</value>
   </property>
   <property>
       <name>dfs.replication</name>
       <value>2</value>
   </property>
</configuration>
     7)配置mapred-site.xml
          <configuration>
   <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
   </property>
</configuration>
     8)配置yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
   <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
   </property>
   <property>
       <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
       <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
   <property>
       <name>yarn.resourcemanager.address</name>
       <value>master:8032</value>
   </property>
   <property>
       <name>yarn.resourcemanager.scheduler.address</name>
       <value>master:8030</value>
   </property>
   <property>
       <name>yarn.resourcemanager.resource-tracker.address</name>
       <value>master:8035</value>
   </property>
   <property>
       <name>yarn.resourcemanager.admin.address</name>
       <value>master:8033</value>
   </property>
   <property>
       <name>yarn.resourcemanager.webapp.address</name>
       <value>master:8088</value>
   </property>
</configuration>
      9)将配置好的hadoop文件夹分发给slaves节点
         $ scp -r /home/ruijun/hadoop my1:/home/ruijun/
         $ scp -r /home/ruijun/hadoop my2:/home/ruijun/
     10)在slaves节点上同样添加hadoop用户,将分发得到的hadoop文件夹设置到hadoop用户下,设置hadoop的环境变量,设置/etc/hosts内容同Master节点上的/etc/hosts内容一样
          $useradd hadoop
          $chown -R hadoop:hadoop hadoop
          
                       在/etc/profile.d/目录下添加hadoop.sh脚本
         
export JAVA_HOME=/home/ruijun/jdk1.8.0_60/bin/java
export HADOOP_INSTALL=/home/ruijun/hadoop
export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin:$PATH
export HADOOP_MAPRED_HOME=${HADOOP_INSTALL}
export HADOOP_COMMON_HOME=${HADOOP_INSTALL}
export HADOOP_HDFS_HOME=${HADOOP_INSTALL}
export YARN_HOME=${HADOOP_INSTALL}
                      $ source /etc/profile
          $vim /etc/hosts
10.0.61.13      master
10.0.61.29      slave1
10.0.61.38      slave2
     
     11)启动Hadoop
          在master上执行如下命令:
          $ cd /home/ruijun/hadoop
          $ bin/hadoop namenode -format
          $ sbin/start-dfs.sh
          $ sbin/start-yarn.sh
          在master上检查进程是否正常启动:
          $ jps
          [root@fedora22_13 hadoop]# jps
3136 ResourceManager
10385 Master
2996 SecondaryNameNode
19478 Jps
2810 NameNode
                     slave节点上应该有的进程:
[root@fedora22_29 ~]# jps
22145 Jps
6278 Worker
2376 NodeManager
2269 DataNode
                    在浏览器中输入http://master:8088,有hadoop的管理界面出来
 
  • 5.安装Spark
               1)官网下载Spark压缩包,注意要和hadoop的版本对应。
                    下载spark-1.4.1-bin-hadoop2.6.tar
                    解压$ tar -xfv spark-1.4.1-bin-hadoop2.6.tar
                    $ mv spark-1.4.1-bin-hadoop2.6.tar spark-1.4.1
               2)配置spark-env.sh
                    $ pwd
                         /home/ruijun/spark-1.4.1/conf   
                    $ cp spark-env.sh.template spark-env.sh
                    $ vim spark-env.sh
                    添加如下内容:
export SCALA_HOME=/home/ruijun/scala-2.10.5
export JAVA_HOME=/home/ruijun/jdk1.8.0_60
export HADOOP_HOME=/home/ruijun/hadoop
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=/home/ruijun/spark-1.4.1
SPARK_DRIVER_MEMORY=1G
               3)配置slaves
                    $ vim slaves
# A Spark Worker will be started on each of the machines listed below.
slave1
slave2
               4)分发spark文件夹给所有slaves
                    $  scp -r spark-1.4.1 my1:/home/ruijun/
                    $ scp -r spark-1.4.1 my2:/home/ruijun/                    
               5)启动Spark
                    $ sbin/start-all.sh
                    $ jps
                    在master上的进程应该为:
[root@fedora22_13 spark-1.4.1]# jps
3136 ResourceManager
10385 Master
2996 SecondaryNameNode
19640 Jps
2810 NameNode
                    在slave上的进程应该为:
[root@fedora22_29 ~]# jps
22242 Jps
6278 Worker
2376 NodeManager
2269 DataNode
                6)进入Spark管理界面:http://master:8080
                    
               7)运行示例
                    以集群Standalone模式运行
                    $ ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://master:7077 lib/spark-examples-1.4.1-hadoop2.6.0.jar 100                     
                    以yarn-cluster模式运行
                    $ ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster lib/spark-examples-1.4.1-hadoop2.6.0.jar 100 

0 0
原创粉丝点击