腾讯大数据处理套件(Tencent Big Data Suite,TBDS)是一个可靠、安全、易用的大数据处理平台。TBDS 提供了多种高性能分析引擎方便您应对实时流数据处理、离线批数据分析、实时多维分析等场景的海量数据分析挑战。
腾讯TBDS大数据处理套件除了可以对原生HDFS分布式文件系统中的数据文件做大批量离线数据分析外,还可以支持对腾讯cos对象系统中的数据文件进行直接访问并进行大批量离线数据分析。本文将重点讲述腾讯TBDS套件如何与cos对象系统相结合,让cos对象存储系统充当TBDS中的sprak、hive等数据分析组件的底层文件系统,实现spark、hive访问cos对象系统像访问本地的HDFS系统一样进行数据分析的集成配置化方法。
TBDS组件集成cos对象系统的配置流程如下:
第一步:在cos对象存储系统官网下载hadoop-cos插件工具,下载地址如下:https://cloud.tencent.com/document/product/436/6884
第二步:登录TBDS部署Portal Web的机器,/data/tools/目录下有一个tbds-bootstrap.sh的脚本工具,该工具可以用来向整个TBDS集群进行文件同步。利用下面的命令,将cos_hadoop_api-5.2.5.jar和hadoop-cos-2.7.2.jar同步到TBDS集群的所有机器的/usr/hdp/2.2.0.0-2041/hadoop/lib/目录下。(注意:如果/usr/hdp/2.2.0.0-2041/hadoop/lib/目录下已经存在其他版本的hadoop-cos插件工具,必须先删除)
在/data/tools/目录下执行命令:
代码语言:javascript复制./tbds-bootstrap.sh run 'rm -rf /usr/hdp/2.2.0.0-2041/hadoop/lib/*cos*'(删除已有cos插件)
./tbds-bootstrap.sh push /data/tools/cos_hadoop_api-5.2.5.jar /usr/hdp/2.2.0.0-2041/hadoop/lib/
./tbds-bootstrap.sh push /data/tools/hadoop-cos-2.7.2.jar /usr/hdp/2.2.0.0-2041/hadoop/lib/
第三步:登录Portal Web界面,访问地址http://portal-web:8088/#/main/services/HDFS/summary
添加hdfs相关的配置,配置文件为core-site.xml文件。
点击配置,在下方找到自定义配置core-site。
在自定义配置core-site中添加如下配置项:
第四步:配置完成后重启HDFS组件,重启需要等一段时间。
第五步:待重启HDFS完成后,测试hadoop命令行访问cos对象系统是否成功。能够正常访问到cos对象中的文件,即代表hdfs已经配置成功。
第六步:使用spark访问cos对象中的文件对象--在提交spark任务时使用—jars指定cos插件提交指定的任务即可。
提交示例如下:
代码语言:javascript复制./spark-submit --class org.apache.spark.examples.JavaWordCount
--master yarn-client --jars /usr/hdp/2.2.0.0-2041/hadoop/share/hadoop/tools/lib/cos_hadoop_api-5.2.5.jar,
/usr/hdp/2.2.0.0-2041/hadoop/share/hadoop/tools/lib/hadoop-cos-2.7.2.jar
第七步:TBDS中的hive默认使用TEZ计算引擎,故如果使用hive访问cos对象文件,需要在TEZ中加载cos插件。具体如下:
在tez-site配置项tez.cluster.additional.classpath.prefix中添加:
代码语言:javascript复制tez.cluster.additional.classpath.prefix=/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure:/usr/hdp/2.2.0.0-2041/hadoop/share/hadoop/tools/lib/cos_hadoop_api-5.2.5.jar:/usr/hdp/2.2.0.0-2041/hadoop/share/hadoop/tools/lib/hadoop-cos-2.7.2.jar
第7步:重启tez组件即可。