单机搭建
环境要求
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
mac 启动sshd
$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
查看启动
$ sudo launchctl list | grep ssh
输出- 0 com.openssh.sshd 表示启动成功
停止sshd服务
$ sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
安装Hadoop,参考
格式化HDFS文件系统,启动Hadoop
$HADOOP_HOME/bin/hdfs namenode -format
# 进入sbin/
$ start-all.sh
- 执行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
$ cp slaves.template slaves
默认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集群运行情况