单机搭建
环境要求
# 进入sbin/
$ start-all.sh
5.执行jps 查看是否正常启动
$ jps
30256 Jps
29793 DataNode
29970 SecondaryNameNode
29638 NameNode
30070 ResourceManager
30231 NodeManager
打开 http://localhost:50070/explorer.html 网页查看hadoop目录结构,说明安装成功
开始安装Spark
-
下载 Spark压缩包解压spark压缩包
$ tar xvzf spark.1.6.tar.gz
加入环境变量
$ vi ~/.bashrc
# 添加如下内容
SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4
SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6
设置配置文件
$ cd spar-1.6.1-bin-hadoop2.6/conf
$ cp spark-env.sh.template spark-env.sh
$ vi spar-env.sh
# 添加如下内容
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
export SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4
export HADOOP_CONF_DIR=/Users/ysisl/app/hadoop/hadoop-2.6.4/etc/hadoop
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=2g
变量说明
JAVA_HOME:Java安装目录SCALA_HOME:Scala安装目录HADOOP_HOME:hadoop安装目录HADOOP_CONF_DIR:hadoop集群的配置文件的目录SPARK_MASTER_IP:spark集群的Master节点的ip地址SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目
默认slaves现在就主机一台
$ cp slaves.template slaves
启动Spark
$ sbin/start-all.sh
jps 查看到多出一个Master,worker进程
$ jps
29793 DataNode
29970 SecondaryNameNode
30275 Master
30468 SparkSubmit
29638 NameNode
30070 ResourceManager
30231 NodeManager
30407 Worker
30586 Jps
配置scala 、spark 、 hadoop 环境变量加入PATH ,方便执行
$ vi ~/.bashrc
export HADOOP_HOME=/Users/ysisl/app/hadoop/hadoop-2.6.4
export SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4
export SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6
export PATH="${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH"
测试运行
准备一个csv文件,路径
../hadoop/test.csv
查看HDFS文件系统结构, 执行
$ hadoop fs -lsr /
新建HDFS目录 ,
$ hadoop fs -mkdir /test
上传文件到目录,
$ hadoop fs -put ../hadoop/test.csv /test/
查看已创建的目录文件,
$ hadoop fs -lsr /
执行 spark-shell
$ spark-shell
scala > val file=sc.textFile("hdfs:/test/test.csv")
scala > val count=file.flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey(_+_)
scala > count.collect
查看执行状态
http://localhost:8080,查看spark 集群运行情况。 此端口一般与其他端口冲突
在spark-env.sh 中加入export SPARK_MASTER_WEBUI_PORT=98080来指定端口
http://localhost:4040/jobs/ ,查看 spark task job运行情况
http://localhost:50070/ hadoop集群运行情况