1.  安装模式

    1.  本地模式

        仅在一台计算机上安装Spark  

    2.  集群模式

        Standalone  独立部署模式,该模式下系统采用Spark自带的简单集群管理器,不依赖第三方提供的集群管理器

        Hadoop Yarn  使用hadoop2.0以上版本中的Yarn充当资源管理器,要确保hadoop安装好并且已经正常启动

        Apache Mesos  一种通用群集管理器        

2.  Hadoop Yarn模式安装Spark

    1.  下载spark

        地址:https://spark.apache.org/downloads.html

    2.  解压并创建软链接

        tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz -C /usr/local

        ln -s spark-2.4.0-bin-hadoop2.7 spark

    3.  授权用户

        chown -R hadoop.hadoop spark-2.4.0-bin-hadoop2.7

    4.  设置环境变量

        在/etc/profile最后添加        

1
2
3
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

        source /etc/profile

    5.  配置spark-env.sh环境变量       

1
2
3
export SPARK_MASTER_IP=172.16.1.229
export SCALA_HOME=/usr/local/scala
export JAVA_HOME=/usr/java/jdk1.8.0_212-amd64

    6.  修改spark的slaves文件

1
2
datanode1
datanode2

    7.  将spark-env.sh和slaves文件拷贝到其它节点上

        scp spark-env.sh slaves root@172.16.1.230:/usr/local/spark/conf/
        scp spark-env.sh slaves root@172.16.1.228:/usr/local/spark/conf/

    8.  启动spark集群

        在主节点上执行/usr/local/spark/sbin/start-all.sh

    9.  验证spark进程

        在主节点执行jps,出现master

        在从节点执行jps,出现worker

        还可以通过web接口查看,http://master:8080

    10.  停止spark集群

        /usr/local/spark/sbin/stop-all.sh

3.  使用spark执行sparkPi程序        

    1.  复制一个jar包文件到spark主安装目录下

        cp /usr/local/spark/examples/jars/spark-examples_2.11-2.4.0.jar /usr/local/spark/

    2.  执行命令

        /usr/local/spark/bin/spark-submit –class org.apache.spark.examples.SparkPi –master yarn-cluster –num-executors 3 –driver-memory 512m –executor-memory 512m –executor-cores 1 spark-examples_2.11-2.4.0.jar 10          

    3.  出现报错

1
2
2022-07-05 17:00:13 ERROR Client:70 - Application diagnostics message: Application application_1656315901081_0004 failed 2 times due to AM Container for appattempt_1656315901081_0004_000002 exited with  exitCode: -103
Failing this attempt.Diagnostics: Container [pid=17032,containerID=container_1656315901081_0004_02_000001] is running beyond virtual memory limits. Current usage: 297.1 MB of 1 GB physical memory used; 2.3 GB of 2.1 GB virtual memory used. Killing container.

    4.  解决方法

        在yarn-site.xml文件,增加下面的内容

1
2
3
4
5
6
7
8
<property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
</property>
<property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
</property>


转自:https://www.cnblogs.com/yangjianbo/articles/16446715.html