安装指南

本教程将指导你通过以下两种模式安装和配置 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