spark on yarn模式安装和配置carbondata

简介: 前置条件Hadoop HDFS 和 Yarn 需要安装和运行。Spark 需要在所有的集群节点上安装并且运行。CarbonData 用户需要有权限访问 HDFS.以下步骤仅针对于 Driver 程序所在的节点. (Driver 节点就是启动 SparkContext 的节点)

本节将介绍如何在 Spark on YARN 模式的集群上安装和配置 CarbonData。carbondata1.5.1的编译可以看上一篇


版本:spark2.3.1,carbondata1.5.1


前置条件

Hadoop HDFS 和 Yarn 需要安装和运行。

Spark 需要在所有的集群节点上安装并且运行。

CarbonData 用户需要有权限访问 HDFS.

以下步骤仅针对于 Driver 程序所在的节点. (Driver 节点就是启动 SparkContext 的节点)


编译carbondata工程,并且从 ./assembly/target/scala-2.1x/carbondata_xxx.jar路径获取 assembly jar。最后将这个 jar 复制到 $SPARK_HOME/carbonlib 文件夹。


注意: 如果 $SPARK_HOME 路径下不存在 carbonlib 文件夹,请事先创建它。


从 CarbonData repository 复制 ./conf/carbon.properties.template 文件到 $SPARK_HOME/conf/ 文件夹下面,并将它重命名为 carbon.properties。


压缩 carbonlib 文件夹的内容到tar.gz 文件中,并将这个压缩文件移到 carbonlib 文件夹下面。


cd $SPARK_HOME
tar -zcvf carbondata.tar.gz carbonlib/
mv carbondata.tar.gz carbonlib/


    4.在 $SPARK_HOME/conf/spark-defaults.conf 文件中配置下表提到的属性。


spark.master yarn-client
spark.yarn.dist.files /home/jason/bigdata/spark2.3/spark-2.3.1-bin-hadoop2.7/conf/carbon.properties
spark.yarn.dist.archives /home/jason/bigdata/spark2.3/spark-2.3.1-bin-hadoop2.7/carbonlib/carbondata.tar.gz
spark.executor.extraJavaOptions -Dcarbon.properties.filepath=carbon.properties -XX:+OmitStackTraceInFastThrow -XX:+UseGCOverheadLimit
spark.executor.extraClassPath carbondata.tar.gz/carbonlib/*
spark.driver.extraClassPath /home/jason/bigdata/spark2.3/spark-2.3.1-bin-hadoop2.7/carbonlib/*
spark.driver.extraJavaOptions -Dcarbon.properties.filepath=/home/jason/bigdata/spark2.3/spark-2.3.1-bin-hadoop2.7/conf/carbon.properties -Dhdp.version=current
spark.yarn.executor.memoryOverhead 1024
spark.yarn.driver.memoryOverhead 1024
spark.yarn.am.extraJavaOptions -Dhdp.version=current
spark.yarn.scheduler.heartbeat.interval-ms 120000
spark.executor.heartbeatInterval 120000
spark.network.timeout 720000


  5.将下面的配置添加到 $SPARK_HOME/conf/carbon.properties 文件中:


carbon.storelocation=hdfs://master:9000/Carbon/CarbonStore
#Base directory for Data files
carbon.ddl.base.hdfs.url=hdfs://master:9000/Carbon/data
#Path where the bad records are stored
carbon.badRecords.location=hdfs://master:9000/Carbon/badrecords

6,把hive-site.xml放到spark的conf下面,(这个一定要放)


7.测试


spark-shell --master yarn-client --driver-memory 1g
 --executor-cores 2 --executor-memory 2G


下面给一个完整的代码demo:


package carbondata
import java.io.File
import org.apache.carbondata.core.util.path.CarbonTablePath
import org.apache.spark.sql.{CarbonEnv, SparkSession}
import org.apache.spark.sql.CarbonSession._
import org.apache.spark.sql.streaming.{ProcessingTime, StreamingQuery}
object carbondataSpark {
  def main(args: Array[String]): Unit = {
    /* //hive store location
     val warehouse = new File("hdfs://master:9000/jason/carbondata_warehouse").getCanonicalPath
     //metastore location
     */
    //val metastore = new File("hdfs://master:9000/hive").getCanonicalPath
    val storeLocation = new File("hdfs://master:9000/jason/carbondata").getCanonicalPath
    val spark = SparkSession
      .builder()
      .appName("carbondata streaming")
      //.config("spark.driver.host","master")
      .getOrCreateCarbonSession("hdfs://master:9000/jason/carbondata")
    spark.sql(s"DROP TABLE IF EXISTS carbon_table")
    spark.sql(
      s"""
         | CREATE TABLE carbon_table (
         | col1 STRING,
         | col2 STRING
         | )
         | STORED BY 'carbondata'
         | TBLPROPERTIES('streaming'='true')""".stripMargin)
    val carbonTable = CarbonEnv.getCarbonTable(Some("default"), "carbon_table")(spark)
    val tablePath = carbonTable.getTablePath
    // batch load
    var qry: StreamingQuery = null
    val readSocketDF = spark.readStream
      .format("socket")
      .option("host", "192.168.17.142")
      .option("port", 9999)
      .load()
    // Write data from socket stream to carbondata file
    qry = readSocketDF.writeStream
      .format("carbondata")
      .trigger(ProcessingTime("1 seconds"))
      .option("checkpointLocation", CarbonTablePath.getStreamingCheckpointDir(tablePath))
      .option("dbName", "default")
      .option("tableName", "carbon_table")
      .start()
    // start new thread to show data
    new Thread() {
      override def run(): Unit = {
        do {
          spark.sql("select * from carbon_table").show(false)
          Thread.sleep(10000)
        } while (true)
      }
    }.start()
    qry.awaitTermination()
  }
}
相关文章
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
206 6
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
95 2
|
5月前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
292 3
|
2月前
|
消息中间件 资源调度 关系型数据库
如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理
本文介绍了如何在Flink on YARN环境中配置Debezium CDC 3.0,以实现实时捕获数据库变更事件并将其传输到Flink进行处理。主要内容包括安装Debezium、配置Kafka Connect、创建Flink任务以及启动任务的具体步骤,为构建实时数据管道提供了详细指导。
142 9
|
2月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
98 3
|
3月前
|
资源调度
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
53 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
|
3月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
211 5
|
3月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
【10月更文挑战第5天】随着大数据处理需求的增长,Apache Spark 成为了广泛采用的大数据处理框架。本文详细解析了 Spark Standalone 与 YARN 两种常见部署模式的区别,并通过示例代码展示了如何在不同模式下运行 Spark 应用程序。Standalone 模式自带轻量级集群管理,适合小规模集群或独立部署;YARN 则作为外部资源管理器,能够与 Hadoop 生态系统中的其他应用共享资源,更适合大规模生产环境。文章对比了两者的资源管理、部署灵活性、扩展性和集成能力,帮助读者根据需求选择合适的部署模式。
49 1
|
3月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
190 4
|
3月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
109 4

相关实验场景

更多