IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Sqoop部署与使用 -> 正文阅读

[大数据]Sqoop部署与使用

目录

Sqoop部署

下载并解压

配置文件?

添加驱动

验证安装

sqoop使用

连接MySQL

导入数据

RDBMS导入HDFS?

RDBMS到Hive

RDBMS到Hbase


Sqoop部署

下载并解压

  1. 下载
  2. 上传安装包sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz到虚拟机中
  3. 解压安装包:
    # 解压
    tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local/src/
    
    # 重命名
    cd /usr/local/src/
    mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop

配置文件?

  1. 复制 sqoop-env-template.sh 文件并重命名
    # 进入 sqoop 的 conf 目录下
    [root@master src]# cd sqoop/conf
    
    # 查看目录下的文件
    [root@master conf]# ls
    oraoop-site-template.xml  sqoop-env-template.sh    sqoop-site.xml
    sqoop-env-template.cmd    sqoop-site-template.xml
    
    # 拷贝一个文件并命名为 sqoop-env.sh
    [root@master conf]# cp sqoop-env-template.sh sqoop-env.sh
  2. 配置sqoop-env.sh
    # 根据软件的安装路径配置文件(如果没有安装对应组件会出现警告,不影响使用)
    export HADOOP_COMMON_HOME=/usr/local/src/hadoop
    export HADOOP_MAPRED_HOME=/usr/local/src/hadoop
    export HIVE_HOME=/usr/local/src/hive
    export HBASE_HOME=/usr/local/src/hbase
    export ZOOKEEPER_HOME=/usr/local/src/zookeeper
    export ZOOCFGDIR=/usr/local/src/zookeeper

添加驱动

如果连接类似MySQL等关系型数据库,需要添加JDBC驱动

?点击下载:JDBC驱动?

cp mysql-connector-java-5.1.27-bin.jar /usr/local/src/sqoop/lib/

验证安装

# 切换到 sqoop 目录下
cd /usr/local/src/sqoop
# 执行验证命令
bin/sqoop help
Available commands:
  codegen            Generate code to interact with database records
  create-hive-table  Import a table definition into Hive
  eval               Evaluate a SQL statement and display the results
  export             Export an HDFS directory to a database table
  help               List available commands
  import             Import a table from a database to HDFS
  import-all-tables  Import tables from a database to HDFS
  import-mainframe   Import datasets from a mainframe server to HDFS
  job                Work with saved jobs
  list-databases     List available databases on a server
  list-tables        List available tables in a database
  merge              Merge results of incremental imports
  metastore          Run a standalone Sqoop metastore
  version            Display version information

Sqoop操作

连接MySQL

bin/sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username 用户 --password 密码
information_schema
hive
metastore
mysql
performance_schema
sys

导入数据

导入:从非大数据集群(RDBMS)向大数据集群(HDFS、HIVE、HBASE?)传输数据

RDBMS导入HDFS?

启动HDFS

  1. ??进入MySQL

    mysql -uroot -proot
  2. 创建测试数据

    # 创建数据库
    create database tescdata;
    
    # 进入 tescdata 数据库
    use tescdata;
    
    # 创建表
    CREATE TABLE PIM(
    id INT(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    NAME VARCHAR(255),
    sex VARCHAR(255));
    
    # 插入数据
    INSERT INTO PIM(NAME, sex) VALUES('zhangshan', '1');
    INSERT INTO PIM(NAME, sex) VALUES('lilei', '1');
    INSERT INTO PIM(NAME, sex) VALUES('xiaohong', '0');
    
    # 查看数据
    mysql> select * from PIM;
    +----+-----------+------+
    | id | NAME      | sex  |
    +----+-----------+------+
    |  1 | zhangshan | 1    |
    |  2 | lilei     | 1    |
    |  3 | xiaohong  | 0    |
    +----+-----------+------+
    
  3. 导入数据?

    1. ?全部导入?

      bin/sqoop import \
      --connect jdbc:mysql://localhost:3306/tescdata \
      --username root \
      --password root \
      --table PIM \
      --target-dir /user/tescdata \
      --delete-target-dir \
      --num-mappers 1 \
      --fields-terminated-by "\t"
      

      [root@master sqoop]# hdfs dfs -cat /user/tescdata/part-m-00000
      1       zhangshan       1
      2       lilei   1
      3       xiaohong        0
      bin/sqoop import \ # 导入数据
      --connect jdbc:mysql://localhost:3306/tescdata \ # 连接mysql
      --username root \ # 用户名
      --password root \ # 密码
      --table PIM \ # 表名
      --target-dir /user/tescdata \ # hdfs目录
      --delete-target-dir \ # 如果有就删除(不建议使用)
      --num-mappers 1 \ # 指定map数
      --fields-terminated-by "\t" # 指定文件分割符
    2. 查询导入???

      bin/sqoop import \
      --connect jdbc:mysql://localhost:3306/tescdata \
      --username root \
      --password root \
      --target-dir /user/tescdata \
      --delete-target-dir \
      --num-mappers 1 \
      --fields-terminated-by "\t" \
      --query 'select * from PIM where sex = 1 and $CONDITIONS'
      [root@master sqoop]# hdfs dfs -cat /user/tescdata/*
      1       zhangshan       1
      5       lilei   1

      --query 查询(执行sql语句进行查询,and $CONDITIONS 不可省略

    3. 导入指定列

      bin/sqoop import \
      --connect jdbc:mysql://localhost:3306/tescdata \
      --username root \
      --password root \
      --columns id,name \
      --table PIM \
      --target-dir /user/tescdata \
      --delete-target-dir \
      --num-mappers 1 \
      --fields-terminated-by "\t" 
      

      --columns?指定列名(使用查询导入执行 select id,name?from PIM where?$CONDITIONS; 效果一致)

    4. 导入筛选
      bin/sqoop import \
      --connect jdbc:mysql://localhost:3306/tescdata \
      --username root \
      --password root \
      --target-dir /user/tescdata \
      --delete-target-dir \
      --num-mappers 1 \
      --fields-terminated-by "\t" \
      --table PIM \
      --where "id>2 and sex = 1"

      --where 指定条件 (使用查询导入执行 select *?from PIM where id>2 and sex = 1?and $CONDITIONS; 效果一致)

RDBMS到Hive

bin/sqoop import \
--connect jdbc:mysql://localhost:3306/tescdata \
--username root \
--password root \
--table PIM \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table hive_PIM
hive> show tables;
OK
hive_pim
Time taken: 0.09 seconds, Fetched: 1 row(s)
hive> select * from hive_pim;
OK
1       zhangshan       1
3       xiaohong        0
5       lilei   1

过程分为两步,第一步将数据导入到HDFS(默认的临时目录是/user/username/表名),第二步将导入到HDFS的数据迁移到Hive仓库

?

?

?RDBMS到Hbase

bin/sqoop import \
--connect jdbc:mysql://localhost:3306/tescdata \
--username root \
--password root \
--table PIM \
--columns "id,name,sex" \
--column-family "info" \
--hbase-create-table \
--hbase-row-key "id" \
--hbase-table "hbase_PIM" \
--num-mappers 1 \
--split-by id

?导出

导出:从大数据集群(HDFS、HIVE、HBASE?)向非大数据集群(RDBMS)传输数据

HIVE/HDFS到RDBMS

bin/sqoop export \
--connect jdbc:mysql://localhost:3306/tescdata \
--username root \
--password root \
--table PIM \
--num-mappers 1 \
--export-dir /user/hive/warehouse/hive_pim \
--input-fields-terminated-by "\t"

MySQL表必须存在,否则不会自动创建

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:16:45  更:2021-08-25 12:19:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:32:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码