Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行                 

                                                  作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  在我的CDH5.15.1集群中,默认安装的spark是1.6版本,开发的同事跟我抱怨,说之前的大数据平台(在ucloud上,属于云服务)用的就是spark1.6,好多java的API都用不了,有很多高级的功能没法在1.6版本上使用,因此被迫需要升级spark版本,他们要求升级到2.3.0或以上版本,经查阅相关资料,才总结了我部署spark2.3.0的部署笔记。当然你可以参考官网:https://www.cloudera.com/documentation/spark2/latest/topics/spark2_installing.html
  如果你使用CDH部署kafka的话,相信升级spark版本这个事情对你来说就是小菜一碟了,因为他们基本上是一个套路。如果你使用时CDH免费版本的话,我并不推荐你使用CDH集成kafka。因为里面有一些和奇葩的坑在等着你。
 
 
一.下载spark2.3的CSD的jar包
  和CDH集成kafka的套路一样,我们在安装spark版本的时候也需要下载相应的csd的jar包。下载地址:http://archive.cloudera.com/spark2/csd/
1>.选择csd版本
2>.安装下载的软件包(wget)
[root@node101 ~]# yum -y install wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
10gen | 2.5 kB ::
base | 3.6 kB ::
centosplus | 3.4 kB ::
epel | 3.2 kB ::
extras | 3.4 kB ::
mysql-connectors-community | 2.5 kB ::
mysql-tools-community | 2.5 kB ::
mysql56-community | 2.5 kB ::
updates | 3.4 kB ::
(/): epel/x86_64/updateinfo | kB ::
(/): epel/x86_64/primary | 3.6 MB ::
(/): updates//x86_64/primary_db | 6.0 MB ::
epel /
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 :1.14-.el7_4. will be installed
--> Finished Dependency Resolution Dependencies Resolved ===================================================================================================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================================================================================================
Installing:
wget x86_64 1.14-.el7_4. base k Transaction Summary
===================================================================================================================================================================================================================
Install Package Total download size: k
Installed size: 2.0 M
Downloading packages:
wget-1.14-.el7_4..x86_64.rpm | kB ::
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : wget-1.14-.el7_4..x86_64 /
Verifying : wget-1.14-.el7_4..x86_64 / Installed:
wget.x86_64 :1.14-.el7_4. Complete!
[root@node101 ~]#

[root@node101 ~]# yum -y install wget

3>.下载csd的jar包
[root@node101 ~]# mkdir /opt/cloudera/csd && cd /opt/cloudera/csd
[root@node101 csd]#
[root@node101 csd]# wget http://archive.cloudera.com/spark2/csd/SPARK2_ON_YARN-2.3.0.cloudera4.jar
---- ::-- http://archive.cloudera.com/spark2/csd/SPARK2_ON_YARN-2.3.0.cloudera4.jar
Connecting to 10.9.137.250:... connected.
Proxy request sent, awaiting response... OK
Length: (19K) [application/java-archive]
Saving to: ‘SPARK2_ON_YARN-2.3..cloudera4.jar’ %[=========================================================================================================================================================================>] , --.-K/s in .002s -- :: (10.4 MB/s) - ‘SPARK2_ON_YARN-2.3..cloudera4.jar’ saved [/] [root@node101 csd]#
[root@node101 csd]# ll
total
-rw-r--r--. root root Oct : SPARK2_ON_YARN-2.3..cloudera4.jar
[root@node101 csd]#
4>.更改权限,让其属于cloudera-scm用户
[root@node101 csd]# ll
total
-rw-r--r--. root root Oct : SPARK2_ON_YARN-2.3..cloudera4.jar
[root@node101 csd]#
[root@node101 csd]#
[root@node101 csd]# id cloudera-scm
uid=(cloudera-scm) gid=(cloudera-scm) groups=(cloudera-scm)
[root@node101 csd]#
[root@node101 csd]#
[root@node101 csd]# chown cloudera-scm:cloudera-scm SPARK2_ON_YARN-2.3..cloudera4.jar
[root@node101 csd]#
[root@node101 csd]# ll
total
-rw-r--r--. cloudera-scm cloudera-scm Oct : SPARK2_ON_YARN-2.3..cloudera4.jar
[root@node101 csd]#

 

二.下载spark2.3的parcel安装包
  和CDH集成kafka的套路一样,我们在安装spark版本的时候也需要下载相应的parcel的jar包。下载地址:http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera4/
1>.选择spark的版本,它需要和上面的csd的版本对应上,当然也得和你的操作系统的版本对应上。
 
2>.进入下载目录,并将manifest.json文件进行备份操作
[root@node101 ~]# cd /opt/cloudera/parcel-repo/
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# mv manifest.json manifest.json.`date +%F`
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
[root@node101 parcel-repo]#
3>.下载spark2.3版本对应的安装包
[root@node101 ~]# hostname
node101.yinzhengjie.org.cn
[root@node101 ~]#
[root@node101 ~]# cd /opt/cloudera/parcel-repo/
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# wget http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera4/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel
---- ::-- http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera4/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel
Connecting to 10.9.137.250:... connected.
Proxy request sent, awaiting response... OK
Length: (183M) [binary/octet-stream]
Saving to: ‘SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel’ %[=========================================================================================================================================================================>] ,, 255KB/s in 22m 2s -- :: ( KB/s) - ‘SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel’ saved [/] [root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel
[root@node101 parcel-repo]#

下载spark2.3.0版本的parcel安装包([root@node101 parcel-repo]# wget http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera4/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel)

[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# wget http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera4/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel.sha1
---- ::-- http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera4/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel.sha1
Connecting to 10.9.137.250:... connected.
Proxy request sent, awaiting response... OK
Length: [binary/octet-stream]
Saving to: ‘SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha1’ %[=========================================================================================================================================================================>] --.-K/s in 0s -- :: (3.01 MB/s) - ‘SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha1’ saved [/] [root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha1
[root@node101 parcel-repo]#

下载spark2.3.0的parcel校验包([root@node101 parcel-repo]# wget http://archive.cloudera.com/spark2/parcels/2.3.0.cloudera4/SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel.sha1)

[root@node101 parcel-repo]# hostname
node101.yinzhengjie.org.cn
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# pwd
/opt/cloudera/parcel-repo
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha1
[root@node101 parcel-repo]#
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# mv SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha1 SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha
[root@node101 parcel-repo]#

对下载的校验包进行重命名操作([root@node101 parcel-repo]# mv SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel.sha1 SPARK2-2.3.0.cloudera4-1.cdh5.13.3.p0.611179-el7.parcel.sha)

[root@node101 parcel-repo]# hostname
node101.yinzhengjie.org.cn
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# pwd
/opt/cloudera/parcel-repo
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rwxr-xr-x. root root Oct : manifest.json.--
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha
[root@node101 parcel-repo]#
[root@node101 parcel-repo]# wget http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/manifest.json
---- ::-- http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/manifest.json
Connecting to 10.9.137.250:... connected.
Proxy request sent, awaiting response... OK
Length: (.6K) [application/json]
Saving to: ‘manifest.json’ %[=========================================================================================================================================================================>] , --.-K/s in 0s -- :: ( MB/s) - ‘manifest.json’ saved [/] [root@node101 parcel-repo]#
[root@node101 parcel-repo]# ll
total
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel
-rwxr-xr-x. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.sha
-rw-r-----. root root Oct : CDH-5.15.-.cdh5.15.1.p0.-el7.parcel.torrent
-rw-r--r--. root root Feb manifest.json
-rwxr-xr-x. root root Oct : manifest.json.--
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel
-rw-r--r--. root root Oct : SPARK2-2.3..cloudera4-.cdh5.13.3.p0.-el7.parcel.sha
[root@node101 parcel-repo]#

下载manifest.json的安装包([root@node101 parcel-repo]# wget http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/manifest.json)

4>.重启Cloudera manager的服务端(我是离线方式部署的CDH)

[root@node101 ~]# hostname
node101.yinzhengjie.org.cn
[root@node101 ~]#
[root@node101 ~]# cd /opt/cloudera-manager/cm-5.15./etc/init.d/
[root@node101 init.d]#
[root@node101 init.d]# ll
total
-rwxr-xr-x. Jul : cloudera-scm-agent
-rwxr-xr-x. Jul : cloudera-scm-server
-rwxr-xr-x. Jul : cloudera-scm-server-db
[root@node101 init.d]#
[root@node101 init.d]# ./cloudera-scm-server restart
Stopping cloudera-scm-server: [ OK ]
Starting cloudera-scm-server: [ OK ]
[root@node101 init.d]#
 
三.通过CDH部署spark2.3.0
1>.点击Parcel
2>.点击分配
3>.点击激活
4>.点击确定
5>.激活完成
6>.点击添加服务
7>.选择Spark2,并点击继续
 
8>.为spark2.3.0版本分配角色
9>.点击继续
10>.等待服务部署完成
11>.spark2.3.0服务添加成功
12>.在cloudera manager主界面查看spark2.3.0服务

 13>.在部署有gateway主机上运行spark2.3.0版本环境

 
四.部署spark可能会遇到的报错处理
1>.缺少YARN组建,spark有两种模式,一种时独立模式,一种时yarn模式,
  部署spark时报错提示如下:
      必须提供“YARN (MR2 Included)”类型的有效依赖服务才能创建“Spark 2”类型的新服务。

  解决方案:

    很简单,我们在部署spark和spark2时,如果选择的时on yarn模式的话,人家已经指名道姓的让你安装YARN服务,因此我们只需要把yarn服务安装好再来安装spark2.3.0版本即可。

2>. 执行内存小雨分配最大内存。

  启动spark2时报错如下:

    Required executor memory (1024+384 MB) is above the max threshold (1024 MB) of this cluster! Please check the values of 'yarn.scheduler.maximum-allocation-mb' and/or 'yarn.nodemanager.resource.memory-mb'. 

  解决方案:

    按照上图的报错信息提示,执行的内存超过来你分配的最大内存,因此按照提示去yarn服务的配置文件修改最大容器内存(yarn.scheduler.maximum-allocation-mb)和容器内存(yarn.nodemanager.resource.memory-mb)的值即可。我的建议是不要把操作系统的所有内存都分配出去,需要给操作系统预留点内存,推荐遵循二八法则(20%的内存分配给操作系统,80%的内存分配给服务)。

 
 
 

Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行的更多相关文章

  1. Hadoop生态圈-Kafka的完全分布式部署

    Hadoop生态圈-Kafka的完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要内容就是搭建Kafka完全分布式,它是在kafka本地模式(https:/ ...

  2. Hadoop生态圈-Kafka的本地模式部署

    Hadoop生态圈-Kafka的本地模式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Kafka简介 1>.什么是JMS 答:在Java中有一个角消息系统的东西,我 ...

  3. 【Hadoop学习】CDH5.2安装部署

    [时间]2014年11月19日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm CDH5.2.0-hadoop2.5.0 [步骤] 1. 准备条件 ...

  4. nodejs部署智能合约的方法-web3 0.20版本

    参考:https://www.jianshu.com/p/7e541cd67be2 部署智能合约的方法有很多,比如使用truffle框架,使用remix-ide等,在这里的部署方法是使用nodejs一 ...

  5. 在vs2017 版本15.7.6中不支持2.1.0以上版本的net core sdk

    问题起因 :使用.net core 2.1sdk 电脑直接安装的2.1.1 没有安装2.1.0的sdk 在项目开发过程中报错:当前 . NET SDK 不支持将 .NET Core 2.1.1 设置为 ...

  6. cdh5.15集群添加spark2.3服务(parcels安装)

    背景: 机器系统:redhat7.3:已经配置了http服务 集群在安装的时候没有启动spark服务,因为cdh5.15自带的spark不是2.0,所以直接进行spark2.3的安装 参考文档:htt ...

  7. centos 7 cloudera-manager5.16.2,CDH5.16.2安装升级spark2.4.0

    1.在已经安装好系统的linux服务器上关闭selinux和iptables 2.在所有linux服务器上配置ntp服务并设置ntp时间同步 3.在所有linux服务器上安装好cm和cdh版本所需要对 ...

  8. Hadoop生态圈-基于yum源的方式部署Cloudera Manager5.15.1

    Hadoop生态圈-基于yum源的方式部署Cloudera Manager5.15.1 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我之前分享过关于离线方式部署Cloudera ...

  9. Hadoop生态圈-离线方式部署Cloudera Manager5.15.1

    Hadoop生态圈-离线方式部署Cloudera Manager5.15.1 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 到目前位置,Cloudera Manager和CDH最新 ...

随机推荐

  1. C++高质量编程笔记

    /* * 函数介绍: * 输入参数: * 输出参数: * 返回值 : */ void Function(float x, float y, float z) { - } if (-) { - whil ...

  2. QT QProgressBar QProgressDialog 模态,位置设置,无边框,进度条样式

    一  关于模态设置 QProgressDialog可以设置模态(需要在new的时候传入parent),QProgressBar设置不好: 只有dialog可以设置模态,widget不能设置模态(QPr ...

  3. Java abstract interface与 interface的区别

    我们常常遇到abstract class与 interface的区别,今天却遇到了abstract interface,感觉interface不用abstract再修饰了啊.结论:事实也确实如此,编译 ...

  4. [转帖]Tensor是神马?为什么还会Flow?

    Tensor是神马?为什么还会Flow? 互联网爱好者 百家号17-05-2310:03 大数据文摘作品,转载要求见文末 编译 | 邵胖胖,江凡,笪洁琼,Aileen 也许你已经下载了TensorFl ...

  5. 序列化与反序列化,json,pickle,xml,shelve,configparser模块

    序列化与反序列化 什么是序列化?序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输.反序列化就是将硬盘中或者网络中传来的一种数据格式转换成内存中数据结构. 为什么要有? 1.可以 ...

  6. PSP(5.11——5.17)以及周记录

    1.PSP 5.11 14:30 20:00 130 200 Cordova A Y min 5.12 9:00 14:00 100 200 Cordova A Y min 5.13 13:30 15 ...

  7. 关于MySQL中添加数据的两种方法

    下面介绍两种执行SQL命令的方法,并作出相应地总结,第一种介绍一种常规用法,下面进行做简要地分析,首先我们需要执行打开数据库操作首先创建一个MySqlConnection对象,在其构造函数中传入一个连 ...

  8. WPF将数据库和GridView绑定并更改GridView模板

    首先来看一下如何使用GridView,在前台的话代码如下:这里仅仅举出一个例子,GridView是作为子项嵌套在ListView中的,这里的数据源是通过绑定的方式来绑定到GridView中的. < ...

  9. 线性代数的本质与几何意义 01. 向量是什么?(3blue1brown 咪博士 图文注解版)

    向量是线性代数最基础.最基本的概念之一,要深入理解线性代数的本质,首先就要搞清楚向量到底是什么? 向量之所以让人迷糊,是因为我们在物理.数学,以及计算机等许多地方都见过它,但又没有彻底弄懂,以至于似是 ...

  10. mysql 创建表指定 字符类型与存储引擎

    DROP TABLE IF EXISTS apilog; /*==============================================================*/ /* T ...