Sqoop 脚本开发规范(实例手把手带你写sqoop export和sqoop import)

  首先,先明确,为什么Sqoop需要规范的脚本开发呢?

    答:是因为,Sqoop import HDFS/Hive/HBase这些都是手动。但是在实际生产里,有时候,需要用脚本来完成。

  比如,通过shell脚本来操作对Sqoop、Hive、HBase、MapReduce、HDFS、Spark、Storm等各种。

  

Sqoop 脚本开发规范

目录规范

  1.目录结构体系

  /home/hadoop(开发用户)/app/djt(数据来源、业务)/sh/sqoop

    示例:/home/hadoop/app/djt/sh/sqoop      (这里专门用来放sqoop开发脚本)

        /home/hadoop/app/djt/sh/hive      (这里专门用来放hive开发脚本)

       /home/hadoop/app/djt/sh/hbase  (这里专门用来放hbase开发脚本) 

  home/hadoop(开发用户)/app/djt(数据来源、业务)/sh/param  (这里专门用来放参数)

    示例:/home/hadoop/app/djt/sh/param

[[email protected] sqoopRunCreate]$ mkdir -p /home/hadoop/app/djt/sh/sqoop
[[email protected] sqoopRunCreate]$ mkdir -p /home/hadoop/app/djt/sh/param

  2.脚本文件命名规范

    2.1文件名规范:数据库类型_数据层_日期_表实体命名。

    2.2文件扩展名规范:扩展名为sh。

     示例:sq_ods_d_djt_user_copy.sh

              sqoop就用sq , ods层(操作数据存储层)就用ods,mapreduce就用mr,表名是djt_user_copy。

  3.脚本运行、调试、编辑

    3.1脚本运行环境

      在liunx操作系统上运行,通过命令方式调用脚本

    3.2调用脚本和终止脚本

      3.2.1可以用多种方式调用脚本如下

        a)Sh 脚本名

        b)./脚本名

        c)Source 脚本名

          /xxxx/xxx/脚本名 -----脚本的全路径

      3.2.2终止脚本

          通过ps命令查询到正在执行脚本的进程,用kill命令杀掉执行中的脚本。

          ps –ef|grep 脚本名;

          kill 脚本的进程

      3.2.3编辑工具

          使用linux系统自带的vi编辑,UE等

  4.脚本注释说明

    脚本中需要有基本的注释信息方便以后维护,如参数、执行示例、脚本存放位置、日志文件地址、创建人、创建日期等信息。

    脚本注释示例:

      ###################################################################

      #说明:将用户数据从HDFS导入MySQL

      #参数CONNECTURL 说明:MySQL 连接地址 示例:jdbc:mysql://dajiangtai/djtdb_test

      #参数USERNAME 说明:MySQL 账号 示例:root

      #参数PASSWORD 说明:MySQL 密码 示例:root

      #执行示例: sh /home/hadoop/app/djt/sh/sqoop/sq_ods_d_djt_user_copy.sh

      #脚本存放地址:/home/hadoop/app/djt/sh/sqoop

      #日志文件地址:/home/hadoop/app/djt/sh/log

      #创建人:dajiangtai

      #创建日期:20161201

      #最新修改日期:20170101

      #修改人、修改时间、修改内容:xxxxxxxxxxxxxxxxx

      #修改人、修改时间、修改内容:xxxxxxxxxxxxxxxxx

      ###################################################################

  5.脚本变量、参数命名规范

    1)脚本变量命名

      变量名:v_开头

    2)参数命名

      表名参数: v_tableName

      导出字段参数:v_fields

      导出文件目录:v_src

  6.脚本环境变量配置文件规范

    配置文件是脚本中用到的环境变量,mysql连接,公共脚本地址等都放到配置文件用方便以后管理。

    1) 配置文件存放路径及其命名配置文件路径及命名:/home/hadoop/app/djt/sh/param/sq_shell.config

    2) 配置文件中示例内容如下

      CONNECTURL=jdbc:mysql://dajiangtai/djtdb_test

      USERNAME=root

      PASSWORD=root

    3) 配置文件编写规范:配置文件中以等号做分割符,第一列是变量名需要大写

  7.编写脚本环境变量配置文件

  vim /home/hadoop/app/djt/sh/param/sq_shell.config

  CONNECTURL=‘jdbc:mysql://192.168.8.200/djtdb_test?useUnic

  ode=true&characterEncoding=utf-8‘

  USERNAME=‘root‘

  PASSWORD=‘111111‘

  我这里是,

vim /home/hadoop/app/djt/sh/param/sq_shell.config

CONNECTURL=‘jdbc:mysql://192.168.80.200/hive?useUnicode=true&characterEncoding=utf-8‘
USERNAME=‘hive‘
PASSWORD=‘hive‘

  8.编写sqoop执行脚本

    vim /home/hadoop/app/djt/sh/sqoop/sq_ods_d_djt_user_copy.sh

    #! /bin/sh

    source /etc/profile

    source /home/hadoop/app/djt/sh/param/sq_shell.config

    #表名称

    v_tableName=djt_user_copy

    #需要导入的表字段

    v_fields=name,sex,age,profile

    #HDFS数据存放地址

    v_src=/sqoop/test/djt_user

    sqoop export \

    --connect $CONNECTURL \

    --username $USERNAME \

    --password $PASSWORD \

    --table $v_tableName \

    --columns $v_fields \

    --export-dir $v_src \

    --input-fields-terminated-by "@" \

    -m 1

  我这里是,

vim /home/hadoop/app/djt/sh/sqoop/sq_ods_d_djt_user_copy.sh

#! /bin/sh
source /etc/profile
source /home/hadoop/app/djt/sh/param/sq_shell.config
#表名称
v_tableName=djt_user_copy
#需要导入的表字段
v_fields=name,sex,age,profile
#HDFS数据存放地址
v_src=/sqoop/test/djt_user
sqoop export --connect $CONNECTURL --username $USERNAME --password $PASSWORD --table $v_tableName --columns $v_fields --export-dir $v_src --input-fields-terminated-by "@" -m 1

  我这里,只是做个引子,每次自己可以更改为自己需要的。

实例

  首先,开启mysql。

  

  然后,再开启Hadoop集群。

[[email protected] sqoop]$ pwd
/home/hadoop/app/djt/sh/sqoop

[[email protected] sqoop]$ ls
sq_ods_d_djt_user_copy.sh
[[email protected] sqoop]$ sh sq_ods_d_djt_user_copy.sh 

或者
[[email protected] sqoop]$ source sq_ods_d_djt_user_copy.sh 


或者
[[email protected] sqoop]$ ./ sq_ods_d_djt_user_copy.sh 


  这里,我的id没自动键。以后再修改

时间: 2024-10-06 02:28:59

Sqoop 脚本开发规范(实例手把手带你写sqoop export和sqoop import)的相关文章

Loadrunner脚本开发规范

目录 1.一般约定... 3 2.代码注释约定... 4 3.格式化代码... 5 1.一般约定 1.1具体脚本规则,必须在具体代码中加注释,以便脚本开发人员阅读和理解脚本. 1.2脚本的存放规则: 测试脚本应该存储在指定的库中,例如一个共享的驱动盘或测试管理工具中.为节省空间,便于复用,测试脚本的文件夹下的: result,res,date 文件夹,后缀名为:.idx  .log  .txt 文件都可不必保留.    1.3脚本中 auction的命名规则: 录制脚本前有个命名规则非常有必要,

Shell脚本开发规范

1)开头指定脚本解释器 #!/bin/sh ;#!/bin/bash 2)开头加版本及版权信息 3)脚本中不用中文注释 4)文件以.sh扩展名保存 5)成对的内容一次性写全,防止泄露 6)[ ]中括号两端要有空格 7)流程控制语句一次性写完,再添加语句 提示:你检查脚本明明没有问题,但是就是执行出现莫名其妙的错误,要想到执行dos2unix命令 好习惯:每次执行脚本都dos2unix下 shell调试脚本方法: 1)shell调试之echo关键命令 2)shell调试之bash参数 sh -n

手把手带你写一个minishell

先解释一下Shell : Shell是一个功能为命令行解释器的应用程序,连接了用户和Linux内核,让我们能高效和安全地使用Linux内核. 要写一个minishell,我们要先理解它的过程: 读取输入->>命令解析->>创建子进程->>(子进程)程序替换->>(父进程)进程等待 代码及注释如下: 1 //minishell: 2 //命令行解释器: 3 //从标准输入读取数据(scanf) ls -l -a 4 //ls----运行ls命令----ls命令

手把手带你做一个超炫酷loading成功动画view Android自定义view

写在前面: 本篇可能是手把手自定义view系列最后一篇了,实际上我也是一周前才开始真正接触自定义view,通过这一周的练习,基本上已经熟练自定义view,能够应对一般的view需要,那么就以本篇来结尾告一段落,搞完毕设的开题报告后去学习新的内容. 有人对我说类似的效果网上已经有了呀,直接拿来就可以用,为什么还要写.我个人的观点是:第三方控件多数不能完全满足UI的要求,如果需要修改,那么必须理解他的实现,所以很有必要自己去写一款出来,成为程序的创造者,而不单单是使用者.所以,写一写已经实现的效果,

手把手带你搭建开发环境

俗话说得好,工欲善其事,必先利其器,开着记事本就想去开发 Android 程序显然不是明智之举,选择一个好的 IDE可以极大幅度地提高你的开发效率,因此本节我就将手把手带着你把开发环境搭建起来. 需要java环境jdk    jdk环境搭建教程 需要的软件 1.Android SDK Android SDK 是谷歌提供的 Android 开发工具包,在开发 Android 程序时,我们需要通过引入该工具包,来使用 Android 相关的 API 2. Eclipse     相信所有 Java

脚本开发的规范

脚本开发的规范:.1) 第一行为 使用的脚本解释器2)最好加上版本版权等信息3)尽量不使用中文注释,如果非要加中文 export LANG="zh_CN.UTF-8"4) 脚本的扩展名应给为.sh 模块的启动和停止脚本命名:start_模块名.sh stop_模块名.sh监控脚本通常以 _mon.sh 为后缀控制脚本一般以 _ctl.sh 为后缀 5) 脚本应该放在固定的路劲下6) 成对的括号一次性打出来7) 流程控制语句一次性格式写完,再写内容8) 字符串赋值时,等号左右不能有空格9

JAVASCRIPT开发规范

JAVASCRIPT开发规范 一.JavaScript 语言规范 JavaScript 是一种客户端脚本语言, Google 的许多开源工程中都有用到它. 这份指南列出了编写 JavaScript 时需要遵守的规则. Alipay 前端 JavaScript 以些规范为准,局部有所修改 注:http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml 1. 变量  声明变量必须加上 var 关键字. Decision:

前端开发规范文档(html,css,js)

首先吐槽一句,本来想上传word文档的,可是发现博客不能上传word文档,这就很尴尬了. 首先声明该规范不是本人写的,网上搜前端规范发现这个很详细就先复制下来做笔记,当然不可能啥都按规范来,每个公司的规范都不一样..仅供参考 前端开发规范文档 Html规范 1 代码风格 1.1 缩进 **[强制]**使用 4 个空格作为一个缩进层级,不允许使用 2 个空格或 tab 字符: 2 属性 2.1 属性引号 **[强制]**对于属性的定义使用双引号,不允许使用单引号,不允许不使用引号: 示例: <!-

手把手教你写Dockerfile, 附赠MongoDB和Nginx Dockerfile编写实例

手把手教你写Dockerfile, 附赠MongoDB和Nginx Dockerfile编写实例 基础镜像可以用于创建Docker容器.镜像可以非常基础,仅仅包含操作系统:也可以非常丰富,包含灵巧的应用栈,随时可以发布.当你在使用 Docker构建镜像的时候,每一个命令都会在前一个命令的基础上形成一个新层.这些基础镜像可以用于创建新的容器.本篇文章将手把手教您如何从基础镜 像,一步一步,一层一层的从Dockerfile构建容器的过程. Docker简介 Docker项目提供了构建在Linux内核