安装Spark
文章目录
一、在master节点上安装spark
1.下载压缩包
步骤一:在master主节点上解压Spark安装包官网下载地址:http://spark.apache.org/downloads.html
[hadoop@master bin]$ su root
[root@master bin]# cd
[root@master ~]# tar -zxvf /opt/software/spark-2.0.0-bin-hadoop2.6.tgz -C /usr/local/src/
2.Spark解压后的重命名操作
解压到“/usr/local/src”下的Spark目录名为“spark-2.0.0-bin-hadoop2.7”,重命名为spark的命令为:
[root@master ~]# mv /usr/local/src/spark-2.0.0-bin-hadoop2.6/ /usr/local/src/spark
3.修改spark目录的用户权限
对目录“/urs/local/src”赋予了hadoop用户权限,
[root@master ~]# chown -R hadoop:hadoop /usr/local/src/spark
4.配置环境变量
由于每次启动spark shell都需要进入到“/usr/local/src/spark/bin”目录下,否则,会提示无法识别spark-shell命令。因此在“/etc/profile”文件中配置Spark的环境变量,这样就可以在任意位置启动spark shell进行交互式编程。先打开“/etc/profile”文件:
[root@master ~]# vi /etc/profile
然后在键盘输入字母“i”或者“o”进入编辑模式,在文件中加入如下内容:
export SPARK_HOME=/usr/local/src/spark
export PATH=$PATH:$SPARK_HOME/bin:$PATH
如果已经存在“export PATH”这样的字眼在该文件中,需要在其末尾加一个冒号作为与之前存在内容间的分隔符,然后再加入上面指定的内容,再在键盘按“Esc”键退出编辑模式,并在键盘输入“:wq”进行内容保存并退出,最后将修改过的“/etc/profile”文件生效,命令为:
[root@master ~]# su hadoop
[hadoop@master root]$ source /etc/profile
二、修改Spark参数
1.修改spark-env.sh
由于要建立Spark与Hadoop之间的连接,需修改Spark参数,先进入Spark的conf目录把“spark-env.sh.template”拷贝为“spark-env.sh”文件并修改配置, 进入Spark的配置文件目录“conf”:
[hadoop@master root]$ cd /usr/local/src/spark/conf/
[hadoop@master conf]$ cp /usr/local/src/spark/conf/spark-env.sh.template /usr/local/src/spark/conf/spark-env.sh
[hadoop@master conf]$ vi /usr/local/src/spark/conf/spark-env.sh
然后将下面所示内容加入到文件“spark-env.sh”中:
export JAVA_HOME=/usr/local/src/java
export HADOOP_HOME=/usr/local/src/hadoop
export SCALA_HOME=/usr/local/src/scala
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_disT_CLAsspATH=$(/usr/local/src/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/src/hadoop/etc/hadoop
export SPARK_YARN_USER_ENV="CLAsspATH=/usr/local/src/hadoop/etc/hadoop"
export YARN_CONF_DIR=/usr/local/src/hadoop/etc/hadoop
2.配置slaves文件
在master节点上安装好后,需建立master节点与slave1和slave2节点的链接关系,所以需将spark中的conf目录下的slaves.template文件重命名为slaves,执行命令为:
代码如下(示例):
[hadoop@master conf]$ cp /usr/local/src/spark/conf/slaves.template /usr/local/src/spark/conf/slaves
[hadoop@master conf]$ vi slaves
master
slave1
slave2
(如果其中有localhost要记得注销,用#)
其中,master、slave1、slave2分别为主节点名和两从节点名
接着在键盘按“Esc”键退出编辑模式,并在键盘输入“:wq”进行保存并退出。
[hadoop@master ~]$su root
[root@master ~] vi /usr/local/src/hadoop/etc/hadoop/yarn-site.xml
在最后面增加:
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
传给其他两个节点:
#用户
[root@master ]scp /usr/local/src/hadoop/etc/hadoop/yarn-site.xml root@slave1: /usr/local/src/hadoop/etc/hadoop
[root@master ] scp /usr/local/src/hadoop/etc/hadoop/yarn-site.xml root@slave2 /usr/local/src/hadoop/etc/hadoop
三、在两个slaves从节点上安装Spark
1.将master主节点上的Spark安装目录和/etc/profile环境变量复制到两个slaves从节点上
[hadoop@master spark]$ su root
[root@master spark]# scp -r /usr/local/src/spark/ root@slave1:/usr/local/src/
[root@master spark]# scp -r /usr/local/src/spark/ root@slave2:/usr/local/src/
[root@master spark]# scp /etc/profile root@slave1:/etc/
[root@master spark]# scp /etc/profile root@slave2:/etc/
其中,scp是节点之间复制文件的命令,hadoop@slave1是指在slave1节点上的hadoop用户。
2.在slave1、slave2节点上分别安装Spark
#用户
[root@slave1 spark] chown -R hadoop:hadoop /usr/local/src/spark/
[root@slave1 spark] su hadoop
[hadoop@slave1 spark]$ source /etc/profile
[root@slave2 spark] chown -R hadoop:hadoop /usr/local/src/spark/
[root@slave2 spark] su hadoop
[hadoop@slave2 spark]$ source /etc/profile
四、运行实例
1.开启三个虚拟机集群
master集群
2.以集群模式运行SparkPi实例程序
在master节点上启动SparkPi实例程序,如下所示:
[hadoop@master spark]$ cd /usr/local/src/spark/
[hadoop@master spark]$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client --driver-memory 1G --executor-memory 1G --executor-cores 1 examples/jars/spark-examples_2.11-2.0.0.jar 40
在运行结果中间可以找到我们需要的pi值,如下所示:
20/07/04 05:48:48 INFO scheduler.DAGScheduler: Job 0 finished: reduce at SparkPi.scala:38, took 3.866892 s
Pi is roughly 3.141053785263446
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。