• 大数据学习之sqoop框架 25


    1Sqoop概述

    1)官网

    http://sqoop.apache.org/

    2)场景

    传统型缺点,分布式存储。把传统型数据库数据迁移。

    Apache Sqoop(TM)是一种用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具 。

    2Sqoop安装部署

    1)下载安装包

    2)解压

    tar -zxvf .tar

    3)修改配置

    vi sqoop-env.sh

    export HADOOP_COMMON_HOME=/root/training/hadoop-2.8.4

    export HADOOP_MAPRED_HOME=/root/training/hadoop-2.8.4

    export HIVE_HOME=/root/training/hive

    export ZOOCFGDIR=/root/training/zookeeper-3.4.10/conf

    4)发送mysql驱动到lib下

    5)检测是否安装成功

    bin/sqoop help

    3Sqoopimport命令

    1)数据从mysql中导入到hdfs当中

    bin/sqoop import --connect jdbc:mysql://bigdata11:3306/sq --username root --password 199902 --table user --target-dir /sqoop/datas --delete-target-dir --num-mappers 1 --fields-terminated-by " "

    2)数据mysql中导入到hdfs当中进行筛选

    bin/sqoop import --connect jdbc:mysql://bigdata11:3306/sq --username root --password 199902 --target-dir /sqoop/selectdemo --delete-target-dir  --num-mappers 1 --fields-terminated-by " " --query 'select * from user where id<=1 and $CONDITIONS'

    3)通过where筛选

    bin/sqoop import --connect jdbc:mysql://bigdata11:3306/sq --username root --password 199902 --target-dir /sqoop/selectdemo2 --delete-target-dir  --num-mappers 1 --fields-terminated-by " " --table user --where "id<=1"

    4mysql导入到hive

    需要先创建hive

    bin/sqoop import --connect jdbc:mysql://training09-01:3306/sq --username root -

    -password 199902 --table user1 --num-mappers 1 --hive-import  --fields-terminated-by " " --hive-overwrite --hive-table user_sqoop

    问题:hiveconf

    解决:

    vi ~/.bash_profile(记得在export PATH之前)

    export HADOOP_CLASSPATH=$HADOOP_CLASSPASS:/root/training/hive/lib/*

    5)常见bug

    mysql权限问题:

    ###grant all privileges on *.* to root@'%' identified by "password";############

    我用这个报错。可以用下面的方法

    首先进入MySQL 使用mysql数据库

    use mysql;

    在这个库中修改user

    update user set host='%' where user='root'

    再刷新一下

    flush privileges;

    4Sqoopexport命令

    需求:Hive/trainingfs的数据导出到mysql

    1)根据hive中的字段创建mysql

    2)编写sqoop启动命令

    bin/sqoop export --connect jdbc:mysql://bigdata11:3306/sq --username root -

    -password 199902 --table user1 --num-mappers 1 --export-dir /user/hive/ware

    house/user_sqoop --input-fields-terminated-by " "

    3)mysq中查看数据是否导入

    5Sqoop打包脚本的使用

    1)创建文件夹

    mkdir sqoopjob

    2)创建文件脚本 vi job_hdfs2mysql.opt

    export

    --connect

    jdbc:mysql://bigdata11:3306/sq

    --username

    root

    --password

    199902

    --table

    user1

    --num-mappers

    1

    --export-dir

    /user/hive/warehouse/user_sqoop

    --input-fields-terminated-by

    " "

    注意:一行命令 一行值

    3)执行脚本文件

    bin/sqoop --options-file /root/sqoopjob/job_hdfs2mysql.opt

    6sqoop常用命令

    命令

    说明

    import

    将数据导入到集群

    export

    将集群数据导出

    codegen

    将某数据库中表生成javaBean并打包为jar

    eval

    查看sql执行结果

    create­hive­table

    创建hive

    import­all­tables

    导入某个数据库中所有表到trainingfs

    list­tables

    列出某个数据库下的所有表

    merge

    trainingfs中不同目录下的数据合并在一起

    查看sqoop版本

    versionV

    help

    查看帮助信息

    7sqoop常用参数

    参数

    说明

    –connect

    连接关系型数据库URL

    –connection­manager

    指定连接管理类

    –driver

    JDBCdriver class

    –username

    连接数据库的用户名

    –password

    连接数据库的密码

    –verbose

    在控制台中打印详细信息

    –help

    查看帮助

    –hive­import

    将关系型数据库导入到hive表中

    –hive­overwrite

    覆盖掉hive表中已存在的数据

    –create­hive­table

    创建hive

    –hive­table

    接入hive

    –table

    指定关系型数据库的表名

  • 相关阅读:
    js里的稀疏数组
    JS中二进制与十进制的相互转换
    【leetcode-03】给定一个字符串,请你找出其中不含有重复字符的最长子串的长度
    JavaScipt30(第二十二个案例)(主要知识点:getBoundingClientRect)
    JavaScipt30(第十八个案例)(主要知识点:Array.prototype.map)
    JavaScipt30(第十个案例)(主要知识点:选中一个数组中间相连部分进行操作的一种思路)
    JavaScipt30(第八个案例)(主要知识点:canvas)
    Lydsy2017省队十连测
    几个多项式的题
    poj3294Life Forms
  • 原文地址:https://www.cnblogs.com/hidamowang/p/10924615.html
Copyright © 2020-2023  润新知