• Sqoop迁移Hadoop与RDBMS间的数据


          Sqoop是用来实现结构型数据(如:关系型数据库RDBMS)和Hadoop之间进行数据迁移的工具。它充分利用了MapReduce的并行特点以批处理的方式加快数据的传输,
    同时也借助MapReduce实现容错。

    一、将MySQL中的表迁移到HDFS上(RDBMS —> HDFS)

    1. 导入MySQL"db_sqoop.mysql_emp表"所有数据到HDFS中;
      sqoop import 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --table mysql_emp 
      --target-dir /data/hdfs_sqoop 
      --delete-target-dir 
      --num-mappers 1    
      --fields-terminated-by '	'
      --table mysql中目标表;
      --target-dir hdfs存放目录;
      --delete-target-dir:若hdfs存放目录已存在,则自动删除;
      --num-mappers:指定maptask数量;
      --fields-terminated-by:各字段间的分隔符;

    2. 将MySQL的查询结果导入HDFS上;
      sqoop import 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --target-dir /data/hdfs_sqoop 
      --delete-target-dir 
      --num-mappers 1    
      --fields-terminated-by '	' 
      --query 'SELECT emp_no,first_name,last_name FROM mysql_emp WHERE gender="M" and $CONDITIONS;'
      ”$CONDITIONS"表示将查询结果带回。

    3. 使用sqoop的关键字筛选查询后的结果导入到HDFS;
      sqoop import 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --table mysql_emp 
      --target-dir /data/hdfs_sqoop 
      --delete-target-dir 
      --num-mappers 1    
      --fields-terminated-by '	' 
      --where "gender='F'"
    4. 从MySQL导入指定’列’到HDFS上;
    5. sqoop import 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --table mysql_emp 
      --target-dir /data/hdfs_sqoop 
      --delete-target-dir 
      --num-mappers 1    
      --fields-terminated-by '	' 
      --columns emp_no,gender,birth_date

    二、MySQL  ——>   Hive (RDBMS ——> HIVE)

    1. 将MySQL中的表导入Hive中;
      sqoop import 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --num-mappers 1    
      --table mysql_emp 
      --hive-import 
      --hive-table db_hive_sqoop.hive_emp 
      --fields-terminated-by '	' 
      --hive-overwrite 
      --delete-target-dir

    三、MySQL –> Hbase(RDBMS ——> Hbase)

    1. 将MySQL中的表导入Hbase中;
    2. sqoop import 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --table book 
      --columns "id,name,price" 
      --column-family "info" 
      --hbase-create-table 
      --hbase-row-key "id" 
      --hbase-table "hbase_book" 
      --num-mappers 1  
      --split-by id

    四、HDFS/Hive —> MySQL (HDFS/Hive —> RDBMS)

    1. 在MySQL中创建对应的表,然后使用如下语句;
    2. sqoop export 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --table myqsl_dept 
      --num-mappers 1 
      --export-dir /usr/hive/warehouse/db_hive_sqoop.db/hive_dept 
      --input-fields-terminated-by '	'

    五、导出MySQL表结构到hive

    1. 导出MySQL表结构;
      sqoop create-hive-table 
      --connect jdbc:mysql://hadoopone:3306/db_sqoop 
      --username root 
      --password root 
      --table mysql_stu 
      --hive-database db_hive_sqoop 
      --hive-table hive_stu
  • 相关阅读:
    VCL组件之编辑控件
    VCL组件之重要的公用属性
    Delphi Menu Designer(菜单设计器)之三
    Delphi Menu Designer(菜单设计器)之二
    VCL组件之TStrings
    在Google Earth上显示等高线
    [闲聊]恐怖的Google人物头像识别技术
    利用免费的GAE(Google App Engine)建立强大的Blog(micolog)网站
    推荐:Windows live writer 2009(附WIN2003下安装方法)
    Google apps注册以及解析ghs.google.com
  • 原文地址:https://www.cnblogs.com/luomeng/p/10632853.html
  • Copyright © 2020-2023  润新知