当前位置: 移动技术网 > IT编程>数据库>其他数据库 > spark2.4 分布式安装

spark2.4 分布式安装

2019年04月23日  | 移动技术网IT编程  | 我要评论
一.Spark2.0的新特性Spark让我们引以为豪的一点就是所创建的API简单、直观、便于使用,Spark 2.0延续了这一传统,并在两个方面凸显了优势: 1、标准的SQL支持; 2、数据框(DataFrame)/Dataset (数据集)API的统一。 在SQL方面,我们已经对Spark的SQL ...

一.spark2.0的新特性
spark让我们引以为豪的一点就是所创建的api简单、直观、便于使用,spark 2.0延续了这一传统,并在两个方面凸显了优势:
  1、标准的sql支持;
  2、数据框(dataframe)/dataset (数据集)api的统一。

  在sql方面,我们已经对spark的sql功能做了重大拓展,引入了新的ansi sql解析器,并支持子查询功能。spark 2.0可以运行所有99个tpc-ds查询(需求sql:2003中的很多功能支持)。由于sql是spark应用所使用的主要接口之一,对sql功能的拓展大幅削减了将遗留应用移植到spark时所需的工作。

在编程api方面,我们合理化了api:

  1、在scala/java中统一了dataframes与dataset:从spark 2.0开始,dataframes只是行(row)数据集的typealias了。无论是映射、筛选、groupbykey之类的类型方法,还是select、groupby之类的无类型方法都可用于dataset的类。此外,这个新加入的dataset接口是用作structured streaming的抽象,由于python和r语言中编译时类型安全(compile-time type-safety)不属于语言特性,数据集的概念无法应用于这些语言api中。而dataframe仍是主要的编程抽象,在这些语言中类似于单节点dataframes的概念,想要了解这些api的相关信息,请参见相关笔记和文章。

  2、sparksession:这是一个新入口,取代了原本的sqlcontext与hivecontext。对于dataframe api的用户来说,spark常见的混乱源头来自于使用哪个“context”。现在你可以使用sparksession了,它作为单个入口可以兼容两者,点击这里来查看演示。注意原本的sqlcontext与hivecontext仍然保留,以支持向下兼容。
更简单、性能更佳的accumulator api:我们设计了一个新的accumulator api,不但在类型层次上更简洁,同时还专门支持基本类型。原本的accumulator api已不再使用,但为了向下兼容仍然保留。

  3、基于dataframe的机器学习api将作为主ml api出现:在spark 2.0中,spark.ml包及其“管道”api会作为机器学习的主要api出现,尽管原本的spark.mllib包仍然保留,但以后的开发重点会集中在基于dataframe的api上。

  4、机器学习管道持久化:现在用户可以保留与载入机器学习的管道与模型了,spark对所有语言提供支持。查看这篇博文以了解更多细节,这篇笔记中也有相关样例。
r语言的分布式算法:增加对广义线性模型(glm)、朴素贝叶斯算法(nb算法)、存活回归分析(survival regression)与聚类算法(k-means)的支持。

二.spark2.4 安装
环境要求jdk 1.8以上版本,scala-2.12以上
基于的hadoop版本,我的现有hadoop为2.6
官网下载时注意:http://spark.apache.org/downloads.html

安装架构
h220 为主节点
h221,h222 为从节点
1.解压缩spark
[hadoop@h220 spark]$ cp spark-2.4.1-bin-hadoop2.6.tgz /home/hadoop/
[hadoop@h220 ~]$ tar -zxvf spark-2.4.1-bin-hadoop2.6.tgz
2.安装jdk,scala
[hadoop@h220 usr]$ tar -zxvf jdk-8u151-linux-x64.tar.gz
[hadoop@h220 ~]$ tar -zxvf scala-2.12.4.tgz
3.设置环境变量
[hadoop@h220 ~]$ vi .bash_profile
export java_home=/usr/jdk1.8.0_151
export java_bin=/usr/jdk1.8.0_151/bin
export scala_home=/home/hadoop/scala-2.12.4
export spark_home=/home/hadoop/spark-2.4.1-bin-hadoop2.6

[hadoop@h220 ~]$ source .bash_profile

4.配置spark
[hadoop@h220 ~]$ cd spark-2.4.1-bin-hadoop2.6/conf/
[hadoop@h220 conf]$ cp spark-env.sh.template spark-env.sh
[hadoop@h220 conf]$ vi spark-env.sh
添加:
export java_home=/usr/jdk1.8.0_151
export scala_home=/home/hadoop/scala-2.12.4
export spark_master_ip=h220
export spark_worder_instances=1
export spark_worker_cores=1
export spark_worker_memory=1g
export hadoop_home=/home/hadoop/hadoop-2.6.0-cdh5.5.2
export hadoop_conf_dir=/home/hadoop/hadoop-2.6.0-cdh5.5.2/etc/hadoop

[hadoop@h220 conf]$ cp slaves.template slaves
[hadoop@h220 conf]$ vi slaves
删除localhost
添加:
h221
h222

5.copy到从节点
配置ssh证书
[hadoop@h220 ~]$ scp -r spark-2.4.1-bin-hadoop2.6 h221:/home/hadoop/
[hadoop@h220 ~]$ scp -r spark-2.4.1-bin-hadoop2.6 h222:/home/hadoop/

6.启动,验证
主节点:
[hadoop@h220 spark-2.4.1-bin-hadoop2.6]$ sbin/start-all.sh
[hadoop@h220 spark-2.4.1-bin-hadoop2.6]$ jps
6970 master
从节点:
[hadoop@h221 spark-2.4.1-bin-hadoop2.6]$ jps
3626 worker
主节点:
[hadoop@h220 spark-2.4.1-bin-hadoop2.6]$ bin/spark-shell
没有报错

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网