文章摘要:

1、代码

2、搭建spark

3、使用datax

4、常见问题

5、指正补充

前言:

git代码


同步hive 至ck datax同步到hive_spark

 

一、搭建spark并启动

启动sts:/data/spark/spark/sbin/start-thriftserver.sh --master yarn --queue default --name spark241

二、创建hive表

-- 创建库
 create database myhive;
 -- 使用库
 use myhive;
 -- 查看当前全部库
 SHOW DATABASES;
 -- 创建表 (text格式) (参考:)drop table IF EXISTS myhive.comm_attachment ;
 CREATE TABLE IF NOT EXISTS myhive.comm_attachment( id int, version String)
  COMMENT 'hive测试表 details'
  ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\t'
  lines terminated by "\n"
  STORED AS TEXTFILE;(orc格式)
  CREATE TABLE IF NOT EXISTS comm_attachment2 (
   `id` int primary key DISABLE NOVALIDATE RELY,
   `version` string
   )
 partitioned by(ds string)
 stored as orc;创建表解释
 1.CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常2.EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION)
3.LIKE 允许用户复制现有的表结构,但是不复制数据
4.COMMENT 可以为表与字段增加描述
5.PARTITIONED BY 指定分区
6.ROW FORMAT
 DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]
 MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
 | SERDE serde_name [WITH SERDEPROPERTIES
 (property_name=property_value, property_name=property_value, ...)]
 用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe;7.STORED AS
 SEQUENCEFILE //序列化文件
 | TEXTFILE //普通的文本文件格式
 | RCFILE //行列存储相结合的文件
 | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname //自定义文件格式
 如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCE8.LOCATION 指定表在HDFS的存储路径(默认地址/user/hive/warehouse)
三、datax-创建任务说明
1、创建/查看执行器(支持自动注册)
 2、创建数据源(有示例)mysql\hive
 3、创建任务模板(任务管理-DataX任务模板)
 4、构建json脚本(任务管理-任务构建)(自行填写json,可忽略此步骤)
 5、任务批量构建(任务管理-任务批量构建)可参考:https://wenku.baidu.com/view/7bffee414bd7c1c708a1284ac850ad02de800793.html注意:datax-executor添加同步插件时
 1、pom.xml  加上对应插件(log包剔除,具体参考hdfs)
 2、{projectHome}\datax-executor\src\main\resources\plugin\writer  添加对于插件
 3、TEXT FILE仅支持GZIP、BZIP2 两种压缩, 不支持配置的 compress 模式 : [NONE]四、常见问题
 hadoop安装目录:/usr/hdp/2.4.3.0-227/hadoop
 /data/spark/spark-2.4.3-bin-hadoop2.7-meta23_20220428/sbin/start-all.shhdfs指令:
 bin/hdfs dfsadmin -report 查看hdfs的各节点状态信息bin/hdfs haadmin -getServiceState nn1 获取一个namenode节点的状态
sbin/hadoop-daemon.sh start namenode 单独启动一个namenode进程(datax链接active,共两个状态:active、standby)
Permission denied: user=root, access=WRITE解决指令:
 -- 查看目录权限用户:hdfs dfs -ls /spark/warehouse/
 -- 授权:hadoop fs -chmod -R 777 /spark/warehouse/