2017-11-29 17:19:15 fz1989 阅读数 737
  • 【2019】CDH6.x企业级大数据平台搭建

    本课程主要讲解在实际项目开发中,企业构建大数据平台的方案及实战。详细阐述企业级大数据平台的架构设计、机器选型、集群规划、技术选型、资源规划等技术方案。实战演练基于Cloudera Manager(CDH6)安装部署、监控管理、运营维护大数据平台的各个服务组件。从理论经验到实战演练,从设计思想到流程实施,亲力亲测,你也绝对可以。 推荐进阶课程:大数据运维尖刀班

    2368 人正在学习 去看看 杨俊

cloudera cdh 是阉割版的spark,没有spark sql和thrift server,没有办法启动thrift server做JDBC/ODBC查询。那么是否有办法自己重新编译spark,来获得这种能力呢?

本人尝试修改spark的hadoop和hive依赖(pom.xml中改成1.1.0-cdh5.11.2),重新打包编译,

mvn -Pyarn -Phive -Phive-thriftserver -Pflume-provided -Phadoop-provided -Phbase-provided -Phive-provided -Pparquet-provided -Dhadoop.version=2.6.0-cdh5.11.2 -DskipTests clean package

结果在编译thrift server一步报错,由于spark使用的是hive1.2.0版本,这个结果也可想而知。


那么在不改hive版本的情况下是否能成功运行呢?

把成功打包好的spark jar包放到spark jar路径下,添加start-thriftserver.sh并做一系列必要的修改后发现仍然启动不了,日志报错大概意思就是client版本有问题,有些类不存在。


那么能不能再进一步,重新编译打包hive呢?

本人使用了hive-1.2.2和hive-2.1.1和hive-2.3.2进行编译,结果均告失败,由于cdh版本的hadoop和hive的源码不兼容导致。


所以目前的结论就是使用cloudera cdh 5.x 在没有官方支持的情况下暂时还没有办法使用spark thrift server。

那么本文的意义其实就是告诉打算尝试的人别费劲了。

当然如果有尝试成功的,欢迎告知

2018-01-11 19:42:04 leen0304 阅读数 941
  • 【2019】CDH6.x企业级大数据平台搭建

    本课程主要讲解在实际项目开发中,企业构建大数据平台的方案及实战。详细阐述企业级大数据平台的架构设计、机器选型、集群规划、技术选型、资源规划等技术方案。实战演练基于Cloudera Manager(CDH6)安装部署、监控管理、运营维护大数据平台的各个服务组件。从理论经验到实战演练,从设计思想到流程实施,亲力亲测,你也绝对可以。 推荐进阶课程:大数据运维尖刀班

    2368 人正在学习 去看看 杨俊

参考官方文档:http://spark.apache.org/docs/latest/building-spark.html

Spark2.2+移除了对hadoop2.5的支持!!!

一、 Spark-2.1.2 编译环境准备

1、hadoop-2.5.0-cdh5.3.6
2、安装并配置好Maven(本次编译使用apache maven 3.3.9)
3、 安装并配置JDK(本次编译使用jdk1.8)
4、 安装并配置Scala(本次使用scala-2.10.4)
下载spark源码 spark-2.1.2.tgz–>http://spark.apache.org/downloads.html
5、spark源码编译,按照官网来(编译spark要内存够大,1g根本后面会出现各种问题)

vi /etc/profile
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

二、编译过程

(1)由于本次编译的是CDH版本,在spark-2.1.0/pom.xml文件添加编译所需的cloudera软件包依赖。【注意:添加的位置】

<repository>  
  <id>cloudera-repo</id>  
  <name>Cloudera Repository</name>  
  <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>  
  <releases>  
    <enabled>true</enabled>  
  </releases>  
  <snapshots>  
    <enabled>false</enabled>  
  </snapshots>  
</repository> 

(2)在spark-2.1.0/pom.xml文件中修改hadoop版本。【注意:添加的位置】

<profile>  
  <id>cdh5.3.6</id>  
  <properties>  
    <hadoop.version>2.5.0-cdh5.3.6</hadoop.version>  
  </properties>  
</profile>  

(3)开始编译【在spark-2.1.0/下执行】,由于使用的是hadoop-2.5.0-cdh5.3.6版本,所以设置hadoop版本;
否则,会默认spark-2.1.0/pom.xml中指定的默认版本。

mvn -Pyarn -Phive -Phive-thriftserver -Phadoop-2.5 -Dhadoop.version=2.5.0-cdh5.3.6 -DskipTests clean package

其中,官网/build/mvn 这是使用的自带的maven,一般我们都是自己下载maven,所以直接mvn ;
-DskipTests clean package 这句话的意思是跳过测试,打包;


【编译成功结果:注意网速、内存比较重要】

这里写图片描述


三、打包,在spark-2.1.0/下执行:

./dev/make-distribution.sh --name 2.5.0-cdh5.3.6  --tgz -Phadoop-2.5 -Dhadoop.version=2.5.0-cdh5.3.6 -Phive -Phive-thriftserver -Pyarn 

上边速度比较慢,要想速度快,修改/dev/make-distribution.sh里面的脚本;

修改,之后再执行上边的操作,会快很多。

VERSION=2.1.2  #spark版本号
SCALA_VERSION=2.10  #scala的大版本号
SPARK_HADOOP_VERSION=2.5.0-cdh5.3.6
SPARK_HIVE=1  # 1 表示支持hive

最终,在spark-2.1.0/的 根目录下生成tar包文件;

这里写图片描述

2019-05-29 10:33:03 weixin_45109718 阅读数 27
  • 【2019】CDH6.x企业级大数据平台搭建

    本课程主要讲解在实际项目开发中,企业构建大数据平台的方案及实战。详细阐述企业级大数据平台的架构设计、机器选型、集群规划、技术选型、资源规划等技术方案。实战演练基于Cloudera Manager(CDH6)安装部署、监控管理、运营维护大数据平台的各个服务组件。从理论经验到实战演练,从设计思想到流程实施,亲力亲测,你也绝对可以。 推荐进阶课程:大数据运维尖刀班

    2368 人正在学习 去看看 杨俊

在集群运行spark时出现java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)

查询得知是版本对应问题
CDH版的spark是1.6.0版本
本地编写代码中的pom文件引用的是2.2.3版本的Spark
在这里插入图片描述

之后在集群部署了2.X版本的Spark 2
在这里插入图片描述然后在控制台找到类似:
/opt/cloudera/parcels/SPARK2-2.1.0.cloudera4-1.cdh5.13.3.p0.818552/bin的目录,走到该目录下运行程序(默认需要运行的jar包已经上传到集群)
命令–
client模式:
./spark2-submit --class 主类名–master yarn --executor-memory 1g --total-executor-cores 2 spark的jar包所在目录
cluster模式:
./spark2-submit --class 主类名 --master yarn --deploy-mode cluster --executor-memory 1g --total-executor-cores 2 spark的jar包所在目录


如果有同学在本地idea中跑spark程序时也遇到类似问题,主类运行不了,定位的代码行是new Sparkconf()时,可以考虑是否也是因为版本问题,需要将scala版本与Spark对应上.
比如我的pom文件中的scala版本是2.11.8版本,但是在idea中默认的是2.10.6版本,所以会冲突,需要将idea中的scala版本更改.
第一步:
在这里插入图片描述

第二步:
在这里插入图片描述

如果idea中下载不了对应的scala版本,建议先在本地下载,然后在上图的第2步导入.
在这里插入图片描述

scala下载地址:https://www.scala-lang.org/download/all.html
具体如何下载就不用我细说了吧?
注意你用的是Mac还是Windows,对应的下载包不一样.
在这里插入图片描述

解压之后就可以导入添加了.

2019-03-13 14:03:54 zhaolq1024 阅读数 687
  • 【2019】CDH6.x企业级大数据平台搭建

    本课程主要讲解在实际项目开发中,企业构建大数据平台的方案及实战。详细阐述企业级大数据平台的架构设计、机器选型、集群规划、技术选型、资源规划等技术方案。实战演练基于Cloudera Manager(CDH6)安装部署、监控管理、运营维护大数据平台的各个服务组件。从理论经验到实战演练,从设计思想到流程实施,亲力亲测,你也绝对可以。 推荐进阶课程:大数据运维尖刀班

    2368 人正在学习 去看看 杨俊

配置idea spark sql连接hive

1.首先将/etc/hive/conf/的hive-site.xml复制到项目的resources下

2.添加maven依赖到pom.xml文件,不仅需要添加spark-sql,还需要添加spark-hive,spark版本2.2.0,scala版本2.10

         <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.10</artifactId>
            <version>2.2.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-hive -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_2.10</artifactId>
            <version>2.2.0</version>
        </dependency>

 3.在程序里设置

 val spark = SparkSession
      .builder()
      .appName("test_note")
      .master("local")
      .enableHiveSupport()//设置支持hive
      .getOrCreate()

到这本地就可以直接查询服务器的hive数据了

配置CDH集群

集群配置只需要将/etc/hive/conf/目录下的hive-site.xml复制到/etc/spark2/conf/目录下,就可以spark-submit了。

 

2016-07-12 18:36:06 Oozie123 阅读数 630
  • 【2019】CDH6.x企业级大数据平台搭建

    本课程主要讲解在实际项目开发中,企业构建大数据平台的方案及实战。详细阐述企业级大数据平台的架构设计、机器选型、集群规划、技术选型、资源规划等技术方案。实战演练基于Cloudera Manager(CDH6)安装部署、监控管理、运营维护大数据平台的各个服务组件。从理论经验到实战演练,从设计思想到流程实施,亲力亲测,你也绝对可以。 推荐进阶课程:大数据运维尖刀班

    2368 人正在学习 去看看 杨俊

Spark集群搭建

1 Spark编译

1.1 下载源代码

git clone git://github.com/apache/spark.git -b branch-1.6

1.2 修改pom文件

增加cdh5.0.2相关profile,如下:
<profile>
  <id>cdh5.0.2</id>
  <properties>
    <hadoop.version>2.3.0-cdh5.0.2</hadoop.version>
    <hbase.version>0.96.1.1-cdh5.0.2</hbase.version>
    <flume.version>1.4.0-cdh5.0.2</flume.version>
    <zookeeper.version>3.4.5-cdh5.0.2</zookeeper.version>
  </properties>
</profile>

1.3 编译

build/mvn -Pyarn -Pcdh5.0.2 -Phive -Phive-thriftserver -Pnative -DskipTests package

上述命令,由于国外maven.twttr.com被墙,添加hosts,199.16.156.89 maven.twttr.com,再次执行。

2 Spark集群搭建[SPARK ON YARN]

2.1 修改配置文件

--spark-env.sh--
export SPARK_SSH_OPTS="-p9413"
export HADOOP_CONF_DIR=/opt/hadoop/hadoop-cluster/modules/hadoop-2.3.0-cdh5.0.2/etc/hadoop
export SPARK_EXECUTOR_INSTANCES=1
export SPARK_EXECUTOR_CORES=4
export SPARK_EXECUTOR_MEMORY=1G
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/
--slaves--
192.168.3.211 hadoop-dev-211
192.168.3.212 hadoop-dev-212
192.168.3.213 hadoop-dev-213
192.168.3.214 hadoop-dev-214

2.2 集群规划,启动集群

--集群规划--
hadoop-dev-211  Master、Woker
hadoop-dev-212  Woker
hadoop-dev-213  Woker
hadoop-dev-214  Woker
--启动Master--
sbin/start-master.sh
--启动Wokers--
sbin/start-slaves.sh

2.3 查看界面

3 集成hive

将hive-site.xml和hive-log4j.properties至spark中conf目录

4 Spark实例演示

4.1 读取mysql数据至hive

# 步骤1,启动spark-shell
bin/spark-shell --jars lib_managed/jars/hadoop-lzo-0.4.17.jar \
--driver-class-path /opt/hadoop/hadoop-cluster/modules/apache-hive-1.2.1-bin/lib/mysql-connector-java-5.6-bin.jar
# 步骤2,读取mysql数据
val jdbcDF = sqlContext.read.format("jdbc").options(Map("url" -> "jdbc:mysql://hadoop-dev-212:3306/hive","dbtable" -> "VERSION", "user" -> "hive", "password" -> "123456")).load();
# 步骤3,转成hive表
jdbcDF.saveAsTable("test");
没有更多推荐了,返回首页