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