云服务器内容精选

  • 步骤二:配置 MRS Spark SQL访问DWS表 准备数据,在 GaussDB (DWS)集群中创建数据库和表: 登录GaussDB(DWS)管理控制台,单击DWS集群“操作”列的“登录”。 登录现有GaussDB(DWS)集群的默认数据库gaussdb,执行以下命令,创建数据库“dws_test”。 CREATE DATABASE dws_test; 连接到创建的新数据库,执行以下命令,创建表“dws_order”。 CREATE SCHEMA dws_data; CREATE TABLE dws_data.dws_order ( order_id VARCHAR, order_channel VARCHAR, order_time VARCHAR, cust_code VARCHAR, pay_amount DOUBLE PRECISION, real_pay DOUBLE PRECISION ); 执行以下命令插入数据到表“dws_order”中。 INSERT INTO dws_data.dws_order VALUES ('202306270001', 'webShop', '2023-06-27 10:00:00', 'CUST1', 1000, 1000); INSERT INTO dws_data.dws_order VALUES ('202306270002', 'webShop', '2023-06-27 11:00:00', 'CUST2', 5000, 5000); 查询表数据,验证数据是否插入。 SELECT * FROM dws_data.dws_order; 下载GaussDB(DWS)数据库JDBC驱动并上传到MRS集群。 登录GaussDB(DWS)管理控制台,单击左侧的“连接管理”,下载JDBC驱动,如下图所示: 解压,获取“gsjdbc200.jar”文件,并上传到MRS集群主Master节点,例如上传到“/tmp”目录下。 使用root用户登录MRS集群主Master节点,执行如下命令: cd {客户端安装目录} source bigdata_env kinit sparkuser (首次认证需要修改密码,未开启Kerberos认证,则无需执行kinit命令。) hdfs dfs -put /tmp/gsjdbc200.jar /tmp 在MRS Spark中创建数据源表,并访问DWS表: 登录Spark客户端节点,执行如下命令: cd 客户端安装目录 source ./bigdata_env kinit sparkuser spark-sql --master yarn 执行如下命令,添加驱动程序jar: add jar hdfs://hacluster/tmp/gsjdbc200.jar; 执行如下命令,在Spark中创建数据源表,访问DWS数据: CREATE TABLE IF NOT EXISTS spk_dws_order USING JDBC OPTIONS ( 'url'='jdbc:gaussdb://192.168.0.228:8000/dws_test', 'driver'='com.huawei.gauss200.jdbc.Driver', 'dbtable'='dws_data.dws_order', 'user'='dbadmin', 'password'='xxx'); 查询Spark表,验证显示的数据是否与DWS数据相同: SELECT * FROM spk_dws_order; 可以验证返回的数据与1中所示的数据相同。
  • 应用场景 华为云提供 MapReduce服务 (MRS),可在云上快速构建和运营全栈云原生大数据平台。它包含HDFS、Hive、HBase、Spark等大数据组件,专为分析海量企业数据而量身定制。 Spark提供了类似SQL的Spark SQL语言,用于对结构化数据进行操作。使用Spark SQL,可以访问不同的数据库,用户可以从这些数据库中提取数据,处理并加载到不同的数据存储中。 本实践演示如何使用MRS Spark SQL访问GaussDB(DWS)数据。
  • 方案架构 Spark的应用运行架构如图1所示,运行流程如下所示: 应用程序(Application)是作为一个进程的集合运行在集群上的,由Driver进行协调。 在运行一个应用时,Driver会去连接集群管理器(Standalone、Mesos、YARN)申请运行Executor资源,并启动ExecutorBackend。然后由集群管理器在不同的应用之间调度资源。Driver同时会启动应用程序DAG调度、Stage划分、Task生成。 然后Spark会把应用的代码(传递给SparkContext的JAR或者Python定义的代码)发送到Executor上。 所有的Task执行完成后,用户的应用程序运行结束。 图1 Spark应用运行架构