spark-2.2.0 集群安装部署以及hadoop集群部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huaishu/article/details/76674988

Spark在生产环境中,主要部署在安装Linux系统的集群中。在linux系统中安装Spark需要预先安装JDK、Scala等所需要的依赖。

由于Spark是计算框架,所以需要预先在集群内有搭建好存储数据的持久化层,如HDFS、Hive、Cassandra等,最后可以通过启动脚本运行应用。


1.安装JDK

配置环境变量 
vim ~/.bash_profile
添加以下内容
JAVA_HOME=/opt/jdk1.8.0_65
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
执行  source ~/.bash_profile使环境变量生效

2.安装scale

下载Scala地址:http://www.scala-lang.org/download/


配置环境变量,添加以下内容

export SCALA_HOME=/data/spark/scala-2.12.3/
export PATH=$PATH:$SCALA_HOME/bin
执行  source ~/.bash_profile使环境变量生效
执行 scala -version ,正常输出说明成功。


3.安装hadoop

服务器
主机名 IP地址 JDK 用户
Master 10.116.33.109 1.8.0_65 root
slave1 10.27.185.72 1.8.0_65 root
slave2 10.25.203.67 1.8.0_65 root

hadoop的下载地址: http://hadoop.apache.org/ 

配置hosts文件(每个节点相同操作)
vim /etc/hosts
10.116.33.109 Master
10.27.185.72 Slave
110.25.203.67 Slave2
	

ssh无密码验证配置

在master节点上必须验证是否都可以无密码登录,否则会报错。
ssh master
ssh slave1
ssh slave2

Hadoop集群搭建

解压hadoop-2.7.2.tar.gz文件后配置环境变量
vim ~/.bash_profile
 export HADOOP_HOME=/data/spark/hadoop-2.7.2
 export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin
 export HADOOP_MAPRED_HOME=$HADOOP_HOME
 export HADOOP_COMMON_HOME=$HADOOP_HOME
 export HADOOP_HDFS_HOME=$HADOOP_HOME
 export YARN_HOME=$HADOOP_HOME
 export HADOOP_ROOT_LOGGER=INFO,console
 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
执行  source ~/.bash_profile使环境变量生效
此环境变量在个节点上都相同操作。

 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_65/
即使环境变量中已经配置,此处必须修改,否则会报“JAVA_HOME is not set and could not be found.”。

修改$HADOOP_HOME/etc/hadoop/slaves
Slave1
Slave2

修改$HADOOP_HOME/etc/hadoop/core-site.xml
 <configuration>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://Master:9000</value>
      </property>
      <property>
         <name>io.file.buffer.size</name>
         <value>131072</value>
     </property>
     <property>
          <name>hadoop.tmp.dir</name>
          <value>/data/spark/hadoop-2.7.2/tmp</value>
     </property>
 </configuration>

修改$HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>Master:50090</value>
    </property>
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/data/spark/hadoop-2.7.2/hdfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/data/spark/hadoop-2.7.2/hdfs/data</value>
    </property>
</configuration>

修改$HADOOP_HOME/etc/hadoop/mapred-site.xml (cp mapred-site.xml.template   mapred-site.xml)
<configuration>
 <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>Master:10020</value>
  </property>
  <property>
          <name>mapreduce.jobhistory.address</name>
          <value>Master:19888</value>
  </property>
</configuration>

修改$HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
     <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</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:8031</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>

复制Master节点的hadoop文件夹到Slave1和Slave2上。
scp -r hadoop-2.7.2 slave1:/data/spark/
scp -r hadoop-2.7.2 slave2:/data/spark/

在Master节点启动集群,启动之前格式化一下namenode:

  hadoop namenode -format

启动:

  $HADOOP_HOME/sbin/start-all.sh

检查,各节点执行 jps
 
 
NameNode显示
DataNode显示
Hadoop管理界面
http://Master:8088/
服务器主机名没有修改,只是hosts文件配置节点名称,导致后续各种任务执行失败,主要是无法通过主机名获取服务器IP地址。
症状包括: mapreduce   ACCEPTED 无法Running

4.安装spark

Spark的下载地址: http://spark.apache.org/ 
本例spark版本spark-2.2.0-bin-hadoop2.7.tgz
配置环境变量内容
export SPARK_HOME=/data/spark/spark-2.2.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin

进入$SPARK_HOME/conf目录,拷贝 cp spark-env.sh.template spark-env.sh ; cp slaves.template slaves
配置spark-env.sh文件,添加以下内容
export SCALA_HOME=/data/spark/scala-2.12.3/ 
export JAVA_HOME=/opt/jdk1.8.0_65  
export SPARK_MASTER_IP=10.116.33.109  
export SPARK_WORKER_MEMORY=128m  
export HADOOP_CONF_DIR=/data/spark/hadoop-2.7.2/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/data/spark/hadoop-2.7.2/bin/hadoop classpath)

export SPARK_LOCAL_IP=10.116.33.109
export SPARK_MASTER_HOST=10.116.33.109
SPARK_MASTER_HOST必须配置,否则Slave节点会报错“Caused by: java.io.IOException: Failed to connect to localhost/127.0.0.1:7077”

修改$SPARK_HOME/conf/slaves,添加如下内容:
Master
Slave1
Slave2

将配置好的spark文件复制到Slave1和Slave2节点。
scp $SPARK_HOME root@Slave1:$SPARK_HOME
scp $SPARK_HOME root@Slave2:$SPARK_HOME

在Master节点启动集群
$SPARK_HOME/sbin/start_all.sh 

查看集群是否启动成功:
jps 
Master节点新增Master进程


Slave节点新增Worker进程






猜你喜欢

转载自blog.csdn.net/huaishu/article/details/76674988