在cdh中安装spark2(代码片段)

dubbo dubbo     2022-12-10     315

关键词:

第一步,需要在CDH上安装Spark 2,由于我的CDH是5.15.x,只能通过CDS的方式安装。官方指导在https://docs.cloudera.com/documentation/spark2/latest/topics/spark2.html

总结下,需要手动下载cds文件上传到CM服务器并修改owner,然后重启系统的cmservice,之后可能还需要登录到CM管理端,从页面重启CM服务,这两者的关系我还不是很清楚囧

其次,配置下remote parcel repo,加上spark2的地址,然后如果页面显示需要重启就重启,重启之后到cluster->parcels页面check for new parcels应该就能看到spark2的选项,download之。

如果CM无法访问外网,方法1,配置CM的proxy,使用http代理;方法2,下载spark2的parcel文件和sha文件,以及!manifest.json,然后上传到CM的local parcel repo目录,重新check for new parcels,应该就OK了。

如果要使用structured streaming,spark2当然是选择最新版,因为foreach这个功能的python版只有2.4才支持。我选择的是最新的2.4.0.cloudera2-1.cdh5.13.3.p0.1041012。

第二步,CM中Add service,添加spark2,添加一个spark history节点,gateway节点自行选择,把所有spark可能运行的节点都选上好了。如果要让spark默认就能访问hive表,需要把hive和spark的gateway角色赋予同一台机器。
第三步,验证,找一台gateway,运行pyspark2(scala或java自行选择),如果出现spark 2.4,0的字样,则安装成功。

问题记录:

1,虽然我在提交spark作业时制定了spark-kafka的版本,

--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.4.0

还是会报错(类似):

java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V
at org.apache.spark.sql.kafka010.SubscribeStrategy.createConsumer(ConsumerStrategy.scala:63)

解决方案(原因未深究,我怀疑是CDH原来装了Spark 1,而这次我并没有卸载的缘故,CDH允许两个版本并存):

export SPARK_KAFKA_VERSION=0.10

2,中文处理的问题,虽然在python中是古老的问题了,spark中一样会遇到,大概长下面这样:

UnicodeEncodeError: ascii codec cant encode character u2013 in position 9741: ordinal not in range(128)

解决方案:

设置python文件编码,针对python 2.x,如下。

# -*- coding: utf-8 -*-
from __future__ import print_function

import sys
reload(sys)
sys.setdefaultencoding(utf8)

3,运行spark的节点很可能不能连接外网,需要proxy,然后会发现各种http_proxy环境变量都没有用,ANT_OPTS也没有用,生效的是spark.driver.extraJavaOptions,如下:

spark2-submit --conf "spark.driver.extraJavaOptions=-Dhttp.proxyHost=xxx -Dhttp.proxyPort=xxx -Dhttps.proxyHost=xxx -Dhttps.proxyPort=xxx"

 

在cdh中安装spark2(代码片段)

第一步,需要在CDH上安装Spark2,由于我的CDH是5.15.x,只能通过CDS的方式安装。官方指导在https://docs.cloudera.com/documentation/spark2/latest/topics/spark2.html。总结下,需要手动下载cds文件上传到CM服务器并修改owner,然后重启系统的cmservice... 查看详情

在cdh5.14.4中安装streamsets与案例运行(代码片段)

在CDH5.14.4中安装StreamSets与案例运行标签(空格分隔):大数据平台构建一:Streamset简介与系统环境介绍二:安装软件准备三:在CDH5.14.4集成使用StreamSets四:streamsets基本使用案例运行一:Streamset简介与系统环境介绍1.1:StreamSet简... 查看详情

cdh5.12.0如何升级到spark2.0版本(代码片段)

CDH5.12.0如何升级到Spark2.0版本标签(空格分隔):大数据平台构建一:CDH5.12.0的spark2.0的概述:二:如何在CDH5.12.0上面升级spark2.0三:在cdh5.12.0CM上面进行配置spark2.0的parcel包的分发一:CDH5.12.0的spark2.0的概述:在CDH5.12.0集群中,默... 查看详情

spark升级--在cdh-5.15.1中添加spark2(代码片段)

一、环境准备 jdk-1.8+scala-2.11.X+python-2.7二、创建目录  mkdir-p/opt/cloudera/csd修改权限  chowncloudera-scm:cloudera-scm/opt/cloudera/csd 获取csd(放到/opt/cloudera/csd目录)wgethttp://archive.cloudera.com/spark2 查看详情

Cloudera Spark2 安装

...照cloudera安装此组件的说明在我的cloudera集群(评估版)中安装Spark2。我下载了CSD,安装了它并使用包下载了组件,分发了它,但是当我尝试激活它时,我收到了以下消息:SPARK2需要CDH(5.8及更高版本)包裹(2.2.0.cloudera1- 查看详情

centos7安装cdh第九章:cdh中安装kafka

相关文章链接 1. CDH官网Kafka的安装教程网址https://www.cloudera.com/documentation/kafka/latest/topics/kafka_installing.html#concept_m2t_d45_4r2. 下载对应的Kafka版本1、查看CDH和Kafka的版本对应列表:查看网址:https://www.cloude 查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情

shandroid-在终端中安装依赖项(代码片段)

查看详情