基础配置:JDK,关闭防火墙,免秘钥登录(略)
1,配置3个节点,ip分别设置为192.168.1.17;192.168.1.18;192.168.1.19
2,在每个节点上都解压spark安装包(spark-2.0.1-bin-hadoop2.7)
3,在每个节点conf/spark-env.sh中配置:
SPARK_LOCAL_IP=当前主机地址,
HADOOP_CONF_DIR=/usr/local/soft/hadoop-2.7.1/etc/hadoop
4,在每个节点conf/spark-defaults.conf中配置:
spark.executorEnv.PYTHONHASHSEED=321
注:以下xxxmasteripxxx统统都是192.168.1.17
5,在master节点(192.168.1.17)中通过如下命令启动master
sbin/start-master.sh -h xxmasteripxx
6,在slave节点(192.168.1.18;192.168.1.19)中通过如下命令启动slave
sbin/start-slave.sh spark://xxxmasteripxxx:7077
7,通过客户端连接
(1)本地shell模式(只在执行spark-shell命令的单机上运行)
bin/spark-shell
(2)集群shell模式
bin/spark-shell --master spark://xxxmasteripxxx:7077
8,上面客户端连接方式运行状态可以在浏览器端可视化查看
地址 ip:4040
(1)单机模式
只有一个executor
(2)集群模式
有两个executor
9,spark节点管理界面访问,xxxmasteripxxx:8080
10,在集群中读取文件:
(1) sc.textFile("/root/work/words.txt")
默认读取本机数据,这种方式需要在集群的每台机器上的对应位置上都一份该文件 浪费磁盘,所以应该通过hdfs存储数据!!
sc.textFile("hdfs://hadoop01:9000/mydata/words.txt");
(2)指定spark从hdfs上读取数据
**可以在spark-env.sh 中配置选项 HADOOP_CONF_DIR 配置为hadoop的etc/hadoop的地址 使默认访问的是hdfs的路径
**如果修改默认地址是hdfs地址 则如果想要访问文件系统中的文件 需要指明协议为file 例如 sc.text("file:///xxx/xx")
11,为了spark能够访问hive,需要如下配置。
(1)将hive-site.xml拷贝到spark/conf里,spark集群每个节点都要拷贝。
(2)将mysql驱动拷贝到spark/jar里,spark集群每个节点都要拷贝。