由于毕业设计需要,在Spark上运行一些机器学习算法,因此今天在实验室电脑上安装Spark,记录下过程。
一、已有环境(来自/etc/profile):
export JAVA_HOME=/opt/jdk1.8.0_121
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export MAVEN_HOME=/home/gyy/maven/apache-maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH
export HADOOP_HOME=/home/gyy/hadoop-2.6.0
export PATH=$HADOOP_HOME/bin:$PATH
export MAHOUT_HOME=/home/gyy/trunk
export PATH=$MAHOUT_HOME/bin:$PATH
二、安装Scala
下载地址:http://www.scala-lang.org/download/
我选择的是最下方scala-2.12.1.tgz,支持Unix,大小为18.79M的那个。
下载完成后解压到/home/gyy/(我的工作目录)下
然后配置环境变量:
export SCALA_HOME=/home/gyy/scala-2.12.1
export PATH=${SCALA_HOME}/bin:$PATH
检测是否成功:
三、安装Spark
下载地址:http://spark.apache.org/downloads.html
选择的下载版本如下:
下载完成后全称为spark-2.1.0-bin-hadoop2.6.tgz,大小为193.3MB
同理解压到/home/gyy/目录下(注意你的用户必须有这个目录的权限,否则会创建logs时显示错误,例如/opt就不可以)
配置环境变量:
export SPARK_HOME=/home/gyy/spark-2.1.0-bin-hadoop2.6
export PYTHONPATH=/home/gyy/spark-2.1.0-bin-hadoop2.6/python
配置Spark的conf:
将spark-env.sh.template复制为spark-env.sh,修改内容添加如下代码:
export JAVA_HOME=/opt/jdk1.8.0_121
export SCALA_HOME=/home/gyy/scala-2.12.1
export HADOOP_HOME=/home/gyy/hadoop-2.6.0
export HADOOP_CONF_DIR=/home/gyy/hadoop-2.6.0/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=512M
将slaves.template复制为slaves,添加个人的主机名称:
gyy-123
四、运行
首先运行Hadoop再运行Spark,jps命令后如下:
可以看到比仅仅运行Hadoop时多处了两个进程Worker和Master。
运行./bin/spark-shell 出现:
标识着Spark搭建成功。
五、简单验证
先将LICENSE上传到HDFS,然后执行
scala> val test_in=sc.testFile("/user/qw/SparkTests/LICENSE")
println(test_in.count())
会显示文件的单词统计。