CentOS 7 配置hadoop(五) 配置sqoop(伪分布)

章节: 

  第一章节:CentOS 7 配置hadoop(一) 安装虚拟机(伪分布)

  第二章节:CentOS 7 配置hadoop(二) 配置hdfs(伪分布) 

  第三章节:CentOS 7 配置hadoop(三) 配置hbase(伪分布) 

  第四章节:CentOS 7 配置hadoop(四) 配置hive(伪分布)  

  第五章节:CentOS 7 配置hadoop(五) 配置sqoop(伪分布) 

  第六章节:CentOS 7 配置hadoop(六) 配置flume(伪分布)  

第五章CentOS 7 配置hadoop(五) 配置sqoop(伪分布)

 准备 sqoop压缩包    所需内容在第一章节   CentOS 7 配置hadoop(一) 安装虚拟机  

  1.使用 FileZilla 上传sqoop文件到虚拟机

    

   2.上传完成,到虚拟机解压    tar -xzvf 包名

   3.解压完成

    1)配置环境变量

        

      export SQOOP_HOME=/root/sqoop-1.4.6-cdh5.7.0
      export PATH=$PATH:$SQOOP_HOME/bin

    2)拷贝mysql的jdbc jar文件sqoop的lib目录   在上章 hive的lib包下已经存在,只需要传过来就OK 

        cp /root/hive-1.1.0-cdh5.7.0/lib/ mysql-connector-java-5.1.45-bin.jar /root/sqoop-1.4.6-cdh5.7.0/lib/

      注意:1.使用sqoop前需要导入Java-json.jar的包到sqoop的lib目录下    使用FileZilla上传 (文件在章节一)
                    2.将hive/lib/hive* 拷贝到sqoop的lib目录下           cp /root/hive-1.1.0-cdh5.7.0/lib/hive* /root/sqoop-1.4.6-cdh5.7.0/lib/

    3)测试   sqoop version  

   

       sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P     回车之后会让输入mysql root用户的密码

    

      出现上述红框的内容证明sqoop配置无误

    在使用sqoop是,需要在mysql 赋予虚拟机用户的权限    master为主机名 12345为mysql密码

        grant all privileges on *.* to root@master identified by '12345';

        flush privileges;

  4.使用sqoop

    1)mysql导入到hive(hdfs)

      (1)进入mysql 创建数据库

        create database hive_test;

        进入数据库

        use hive_test;

        创建表

        CREATE TABLE user (id int,name varchar(20));

        添加数据

        insert into user (id,name) values (1,'a'),(2,''test);

      (2)进入hive 创建数据库

        create database hive_test;

        进入数据库

        use hive_test;

        创建表

        create table user (id int,name string)row format delimited fields terminated by ' ';

      (3)mysql数据导入hive数据 

# --connect 连接   --username mysql账号  --password mysql密码  --table mysql表名  -m 执行map的次数  --fields-terminated-by 列的分割  --hive-import 导入hive  --hive-database  hive中的那个数据库 --hive-table hive表  --target-dir 是你要导入到那个表的地址
sqoop import --connect jdbc:mysql://master:3306/hive_test --username root --password hadoop --table user --fields-terminated-by '	' --delete-target-dir --target-dir /user/hive/warehouse/hive_test.db/user --m 1 --hive-import --hive-database hive_test --hive-table user

       (4)查看hive 中的表数据

         

     显示出来代表执行成功

    2)hdfs导出到mysql

      (1)创建hive 表

        create table users (id int,name string)row format delimited fields terminated by ' '

      (2)添加数据

        insert into users values (1,'b'),(2,'a');

      (3)创建mysql表

        CREATE TABLE users (id int,name varchar(20));

      (4)hdfs导入mysql

#--connect 连接 --username mysql账号 --password mysql密码 --table mysql表名 --export-dir hive文件在网站上的那个地方  --fields-terminated-by 列的分割 --m 执行map的次数
sqoop export --connect jdbc:mysql://master:3306/hive_test --username root --password hadoop --table users --export-dir /user/hive/warehouse/hive_test.db/users/000000_0 --fields-terminated-by '	' --m 1

        (5)查看mysql表中数据

        

 到此sqoop配置以及使用结束!!!

原文地址:https://www.cnblogs.com/lihui123/p/14140675.html