1.准备好安装了jdk的虚拟机
---------------(Spark并不是必须依赖于Hadoop,它是一个通用性的集群计算平台,可以用来替代Hadoop的MapReduce,因为相比较而言,Spark更加高效)
2.下载并在Linux上安装spark
3.选择节点打通无密登录(1台做master节点,另外几台做worker节点)
4.在conf下cp出slaves 和 spark-env.sh,并i修改
---------------修改4.1Slaves
---------------修改4.2spark-env.sh
5.修改sbin下spark-config.sh
6.配置从节点
7.启动spark
---------------到主节点spark的sbin下运行 start-all.sh
8 spark集成hive(题外)
1.准备好安装了jdk的虚拟机
(我这里是在已经搭建好的Hadoop完全分布式基础上继续搭建的上,Spark并不是必须依赖于Hadoop,它是一个通用性的集群计算平台,可以用来替代Hadoop的MapReduce,因为相比较而言,Spark更加高效)
2.下载并在Linux上安装spark
- cd /usr/soft/
- ls
查看当前目录下文件 - tar -zxvf spark-2.4.3-bin-hadoop2.6.tgz
解压
因为IP地址变了,所以改一下hosts文件
- mv spark-2.4.3-bin-hadoop2.6 spark-2.4.3
解压后文件夹名太长,改个名字
3.选择节点打通无密登录
(1台做master节点,另外几台做worker节点)
我的也已经配好了!
试验一下能否无秘登陆另外几个节点(下面是一个实例);
- ssh-keygen -r rsa
生成密钥 - cd .ssh/
相对路径 - ls
- cat id_rsa.pub >> authorized_keys
查看文件加管道命令 - scp authorized_keys root@node-2:$PWD
……
把公钥拷贝到另外几台节点的相同路径下
然后登陆试验一下
4.在Spark的conf目录下cp出slaves 和 spark-env.sh,并修改
本身是没有这两个文件的,所以通过模板拷贝一份
4.1修改Slaves
声明有几个重节点
- vi slaves
node-2
node-3
node-4
4.2修改spark-env.sh
- vi spark-env.sh
- 声明主节点IP地址
- 声明主节点提交任务的端口
- 声明每个重节点可以使用几核处理任务(根据集群中计算机的性能来定)
2核就代表可以同时处理两个任务(这里的核和计算机的一核两个线程处理任务时不一样) - 声明每个重节点处理任务时使用多大的内存
- 声明spark监视窗口的端口
这里要修改spark监视窗口的端口,因为默认是8080和汤姆猫冲突
export SPARK_MASTER_HOST=node-1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=3g
export SPARK_MASTER_WEBUI_PORT=8888
//用来关联hadoop
export JAVA_HOME=/opt/jdk/
export HADOOP_HOME=/opt/hadoop-2.7.3
export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
5.修改spark的sbin目录下 spark-config.sh文件
声明jdk路径(1x可以自动识别,2x则需要自己配置)
- echo $JAVA_HOME
查看jdk路径 - vi spark-config.sh
export JAVA_HOME=/usr/soft/jdk1.8.0_111/
6.配置重节点
- scp -r spark-2.4.3/ root@node-3:$PWD
把spark-2.4.3文件夹下的所有拷贝到node-3的相同路径下
有几个重节点就拷几台
7.启动spark
无法配置全局变量,得到主节点spark的sbin下运行 start-all.sh,因为启动命令和Hadoop得冲突了;
- cd /usr/soft/spark-2.4.3/sbin/
进入此路径 - ./start-all.sh
在当前路径下使用此命令(启动Spark)
- 下面通过主节点IP和在spark-env.sh文件里设置的端口号登陆页面查看
如上图所有的节点都启动起来了;
成功!
8 spark集成hive(题外)
spark链接hive有两种方式
- 一、
1 将hive 的conf路径下的hive-site.xml文件拷贝到spark的conf路径下
按下图模版修改
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://love:9083</value>
</property>
</configuration>
2.在启动spark-sql前先开启metastore服务
启动hive的metastore服务,spark通过hive的metastore得到文件元数据信息再去hdfs获取文件
hive --service metastore &
- 二、
在命令行临时指定
spark-shell --conf spark.hadoop.hive.metastore.uris=thrift://localhost:9083