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


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

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

    2.1Linux解压并删除压缩包 tar -zxvf  sqoop    仅解压

    2.2 mkdir ./sqoop && tar -xzvf sqoop-1.4.6-cdh5.7.0.tar.gz -C ./sqoop --strip-components 1  

    把解压文件放在sqoop的目录下,这样就得到了“sqoop”命名的解压文件。

    –strip-components = NUMBER

    在提取时从文件名中删除NUMBER个前导组件 

     3.配置环境变量 

    vi /etc/profile
    
    export SQOOP_HOME=/opt/sqoop-1.4.6-cdh5.7.0
    
    export PATH=$PATH:$SQOOP_HOME/bin

    source /etc/profile  

     

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

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

     注意:1.使用sqoop前需要导入Java-json.jar的包到sqoop的lib目录下    使用FileZilla上传  hive下面有java-json.jar

        sqoop/lib下有hadoop-core-2.6.0-mr1-cdh5.7.0-20160212.213956-397.jar和mysql的jar

            2.将之前上传的mysql-connector-java-5.1.45-bin.jar 拷贝到sqoop的lib目录下       

        3.将hive/lib/hive* 拷贝到sqoop的lib目录下           cp /opt/hive-1.1.0-cdh5.7.0/lib/hive* /opt/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';
    
    
    

     执行这句报错 说明你的密码太简单, 就先执行下面这两句在执行赋权操作:

     如何密码设置简单的 需要执行:

     set global validate_password_policy=0; 

     set global validate_password_length=1;

    最后在刷新:flush privileges;

    5.使用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表中数据

       

     

  • 相关阅读:
    常用类练习题(用字符串常用类判断输入的一段话是否为回文)
    面向对象综合练习题(动物乐园)
    多态练习题(通过UML建模语言来实现饲养员喂养动物)
    UML建模语言使用的概述
    多态练习题(员工使用不同的交通工具回家)
    多态练习题(宠物医院治疗小动物的问题 ,多态的应用:向上类型传递)
    接口练习题(书信接口)
    接口练习题(实现接口功能拓展的两种方法)
    Oracle rman 各种恢复
    Oracle rman 全备份的一个小例子
  • 原文地址:https://www.cnblogs.com/wdyjt/p/14164248.html
Copyright © 2020-2023  润新知