云服务器下Spark安装配置

文章目录

  • Spark安装配置
    • 安装配置java
    • 安装配置hadoop
    • 安装配置scala
    • 安装配置spark
    • 验证是否成功

Spark安装配置

安装配置java

Spark 本身是用Scala 写的,运行在Java 虚拟机(JVM)上。要在你的电脑或集群上运行Spark,你要做的准备工作只是安装Java 6 或者更新的版本。

安装配置hadoop

其次需要安装Hadoop,因为Spark需要HDFS(非必要)。

安装Hadoop可以查看我之前的文章,https://blog.csdn.net/No_Game_No_Life_/article/details/87969819以及https://blog.csdn.net/No_Game_No_Life_/article/details/87969819

安装配置scala

下载Scala2.11
wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
tar -zxvf
vi /etc/profile

export SCALA_HOME=/root/scala/
export PATH=$SCALA_HOME/bin:$PATH

source /etc/profile

检测是否安装成功:scala -version

安装配置spark

由于我安装的hadoop是2.7版本以上的,所以我的下载是:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
tar -zxvf ...

修改相应的配置文件:
(1)/etc/profie

#Spark enviroment
export SPARK_HOME=/root/spark/
export PATH="$SPARK_HOME/bin:$PATH"

(2)$SPARK_HOME/conf/spark-env.sh
cp spark-env.sh.template spark-env.sh
vi spark-env.sh

#配置内容如下:
export SCALA_HOME=/root/scala
export JAVA_HOME=/root/java
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/root/hadoop/etc/hadoop

3)$SPARK_HOME/conf/slaves
cp slaves.template slaves

master
slave

(4)$SPARK_HOME/sbin
./start-all.sh

验证是否成功

  1. 启动hadoop
  2. 启动spark
  3. 完成一次hadoop mapreduce

测试的源文件的内容为:

Hello hadoop
hello spark
hello bigdata

然后执行下列命令:
hadoop fs -mkdir -p /Hadoop/Input
hadoop fs -put wordcount.txt /Hadoop/Input
hadoop jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /Hadoop/Input /Hadoop/Output

等待mapreduce执行完毕后,查看结果;
hadoop fs -cat /Hadoop/Output/*
hadoop集群搭建成功!

  1. 测试spark

为了避免麻烦这里我们使用spark-shell,做一个简单的worcount的测试

用于在测试hadoop的时候我们已经在hdfs上存储了测试的源文件,下面就是直接拿来用就好了!

spark-shell
我们运行到这里的时候,服务器内存不够了,使用free -m查看内存
使用ps aux查看占用内存多的进程
使用echo 3 > /proc/sys/vm/drop_caches清理缓存
使用kill -9 进程号清理进程

val file=sc.textFile("hdfs://master:9000/Hadoop/Input/wordcount.txt")
val rdd = file.flatMap(line => line.split(" ")).map(word => (word,1)).reduceByKey(_+_)
rdd.collect()
rdd.foreach(println)

退出的话使用如下命令:
:quit

你可能感兴趣的:(分布式架构)