安装指南

本教程将指导你通过以下两种模式安装和配置 CarbonData:

其次是 :

在 Spark 独立模式集群上安装和配置 CarbonData

前置条件

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

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

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

  • 步骤

    1. 编译 CarbonData 工程,并且从 ./assembly/target/scala-2.1x/carbondata_xxx.jar 路径获取 assembly jar。

    2. ./assembly/target/scala-2.1x/carbondata_xxx.jar 文件复制到 $SPARK_HOME/carbonlib 目录。

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

    3. 将 carbonlib 文件夹路径添加到 Spark classpath 中。 (编辑 $SPARK_HOME/conf/spark-env.sh 文件,然后修改 SPARK_CLASSPATH 属性,将 $SPARK_HOME/carbonlib/* 追加到现有值的后面)

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

    5. 在集群上的所有节点重复执行步骤2到步骤5

    6. 在 Spark 集群的主节点的 $SPARK_HOME/conf/spark-defaults.conf 文件中配置下表提到的属性。

    属性 值 描述
    spark.driver.extraJavaOptions
    -Dcarbon.properties.filepath = $SPARK_HOME/conf/carbon.properties
    传递给 driver 的额外 JVM 选项。例如,GC 设置或其他日志记录。
    spark.executor.extraJavaOptions
    -Dcarbon.properties.filepath = $SPARK_HOME/conf/carbon.properties
    传递给 executors 的额外 JVM 选项。例如,GC 设置或其他日志记录。 注意: 多个属性值以空格分隔。
    1. 将下面的配置添加到 $SPARK_HOME/conf/carbon.properties 文件中:
    属性 是否必须 描述 示例 备注
    carbon.storelocation
    NO
    CarbonData 创建存储并以自己的格式写入数据的位置。如果没有配置这个属性将使用 spark.sql.warehouse.dir 配置的路径。
    hdfs://HOSTNAME:PORT/Opt/CarbonStore
    建议设置 HDFS 目录
    1. 验证安装。 例如:
    ./spark-shell --master spark://HOSTNAME:PORT --total-executor-cores 2
    --executor-memory 2G
    

    注意: 确保您拥有相关的权限。

    开始使用 CarbonData 请参见 : 快速开始, CarbonData 数据管理

    在 Spark on YARN 模式的集群上安装和配置 CarbonData

    本节将介绍如何在 Spark on YARN 模式的集群上安装和配置 CarbonData。

    前置条件

  • Hadoop HDFS 和 Yarn 需要安装和运行。
  • Spark 需要在所有的集群节点上安装并且运行。
  • CarbonData 用户需要有权限访问 HDFS.
  • 步骤

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

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

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

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

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

    cd $SPARK_HOME
    tar -zcvf carbondata.tar.gz carbonlib/
    mv carbondata.tar.gz carbonlib/
    
    1. $SPARK_HOME/conf/spark-defaults.conf 文件中配置下表提到的属性。
    属性 描述 值
    spark.master
    设置该值使得我们可以在集群集模式下运行 Spark。
    将此属性设置为 yarn-client 以便 Spark 可以以 yarn client 模式运行。
    spark.yarn.dist.files
    逗号分隔的文件列表,这些文件将被放置到每个 executor 的工作目录中。
    $SPARK_HOME/conf/carbon.properties
    spark.yarn.dist.archives
    逗号分隔的档案文件列表,这些文件将被提取到每个 executor 的工作目录中。
    $SPARK_HOME/carbonlib/carbondata.tar.gz
    spark.executor.extraJavaOptions
    传递给 executors 的额外 JVM 选项。注意: 多个属性值以空格分隔。
    -Dcarbon.properties.filepath = carbon.properties
    spark.executor.extraClassPath
    传递给 executors 的额外 classpath 信息。注意: 如果 spark-env.sh 里面定义了 SPARK_CLASSPATH,请将它注释掉,并将其值添加到 spark.driver.extraClassPath 参数里面
    carbondata.tar.gz/carbonlib/*
    spark.driver.extraClassPath
    传递给 driver 的额外 classpath 信息。注意: 如果 spark-env.sh 里面定义了 SPARK_CLASSPATH,请将它注释掉,并将其值添加到 spark.driver.extraClassPath 参数里面
    $SPARK_HOME/carbonlib/*
    spark.driver.extraJavaOptions
    传递给 driver 的额外 JVM 选项。例如,GC 设置或其他日志记录。
    -Dcarbon.properties.filepath = $SPARK_HOME/conf/carbon.properties
    1. 将下面的配置添加到 $SPARK_HOME/conf/carbon.properties 文件中:
    属性 是否必须 描述 示例 备注
    carbon.storelocation
    NO
    CarbonData 创建存储并以自己的格式写入数据的位置。如果没有配置这个属性将使用 spark.sql.warehouse.dir 配置的路径。
    hdfs://HOSTNAME:PORT/Opt/CarbonStore
    建议设置 HDFS 目录
    1. 验证安装。
     ./bin/spark-shell --master yarn-client --driver-memory 1g
     --executor-cores 2 --executor-memory 2G
    

    注意: 确保您拥有相关的权限。

    开始使用 CarbonData 请参见: 快速开始, CarbonData 数据管理

    使用 CarbonData Thrift 服务器执行查询

    启动 CarbonData Thrift Server.

    a. cd $SPARK_HOME

    b. 运行下面的命令来启动 CarbonData thrift server.

    ./bin/spark-submit
    --class org.apache.carbondata.spark.thriftserver.CarbonThriftServer
    $SPARK_HOME/carbonlib/$CARBON_ASSEMBLY_JAR <carbon_store_path>
    
    属性 描述 示例
    CARBON_ASSEMBLY_JAR
    $SPARK_HOME/carbonlib/ 文件夹下面 CarbonData assembly jar 的文件名。
    carbondata_2.xx-x.x.x-SNAPSHOT-shade-hadoop2.7.2.jar
    carbon_store_path
    CarbonThriftServer 类的参数。这是一个保存 CarbonData 文件的 HDFS 路径。强烈推荐将这个值设置成与 carbon.properties 文件中 carbon.storelocation 参数一样。如果没有配置这个属性将使用 spark.sql.warehouse.dir 配置的路径。
    hdfs://<host_name>:port/user/hive/warehouse/carbon.store

    注意: 从 Spark 1.6 开始,默认情况下,Thrift 服务器是以多会话模式(multi-session mode)运行。这意味着每个 JDBC/ODBC 连接都拥有自己的 SQL 配置和临时函数注册信息。但是缓存表仍然可以共享。 如果你希望以单会话模式(single-session mode)运行 Thrift 服务器并共享所有 SQL 配置和临时函数注册信息,请将 spark.sql.hive.thriftServer.singleSession 属性设置成 true。 你可以在 spark-defaults.conf 文件里面设置,也可以通过 --conf 传递给 spark-submit.sh:

    ./bin/spark-submit
    --conf spark.sql.hive.thriftServer.singleSession=true
    --class org.apache.carbondata.spark.thriftserver.CarbonThriftServer
    $SPARK_HOME/carbonlib/$CARBON_ASSEMBLY_JAR <carbon_store_path>
    

    但是 在单会话模式下,如果一个用户从一个连接改变数据库,其他连接的数据库也会改变。

    示例

  • 使用默认的内存和执行器个数配置启动:
  • ./bin/spark-submit
    --class org.apache.carbondata.spark.thriftserver.CarbonThriftServer
    $SPARK_HOME/carbonlib
    /carbondata_2.xx-x.x.x-SNAPSHOT-shade-hadoop2.7.2.jar
    hdfs://<host_name>:port/user/hive/warehouse/carbon.store
    
  • 使用固定的执行器个数和资源启动:
  • ./bin/spark-submit
    --class org.apache.carbondata.spark.thriftserver.CarbonThriftServer
    --num-executors 3 --driver-memory 20g --executor-memory 250g
    --executor-cores 32
    /srv/OSCON/BigData/HACluster/install/spark/sparkJdbc/lib
    /carbondata_2.xx-x.x.x-SNAPSHOT-shade-hadoop2.7.2.jar
    hdfs://<host_name>:port/user/hive/warehouse/carbon.store
    

    使用 Beeline 连接 CarbonData Thrift Server。

         cd $SPARK_HOME
         ./sbin/start-thriftserver.sh
         ./bin/beeline -u jdbc:hive2://<thriftserver_host>:port
    
         Example
         ./bin/beeline -u jdbc:hive2://10.10.10.10:10000