微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sqoop安装及基本使用

Sqoop:     1、sqoop从数据库中导入数据到HDFS     2、SQOOP从数据库导入数据到hive     3、sqoop从hive中将数据导出到数据库   sqoop底层还是执行的mapreduce程序,,但是特殊的地方只有map TASK     可以实现:企业级数据仓库、文档型系统、关系型数据库<-->   sqoop安装:     1、tar -zxvf sqoop-1.4.6-cdh5.5.2.tar.gz     2、将MysqL的驱动包mysql-connector-java-5.1.43.jar拷贝到sqoop home/lib下面         cp mysql-connector-java-5.1.43.jar sqoop-1.4.6-cdh5.5.2/lib/     3、配置环境变量         export SQOOP_HOME=/yang/sqoop-1.4.6-cdh5.5.2         export PATH=$PATH:$SQOOP_HOME/bin     4、配置SQOOP ,cd sqoop-1.4.6-cdh5.5.2/conf/         mv sqoop-env-template.sh sqoop-env.sh                  export HADOOP_COMMON_HOME=/yang/hadoop-2.6.5         export HADOOP_MAPRED_HOME=/yang/hadoop-2.6.5         export HBASE_HOME=/yang/hbase-1.2.5         export HIVE_HOME=/yang/apache-hive-2.1.1-bin       5、source /etc/profile     6、sqoop version    开始使用:         前提:MysqL可以正常使用         hdfs服务开启start-dfs.sh start-yarn.sh         hive服务开启 nohup hive --service metastore &  查看数据库有哪些表             sqoop list-tables --connect jdbc:mysql://192.168.100.121:3306/big_data --username root -P             或者(上面大写P会让你在控制台输入密码)             sqoop list-tables --connect jdbc:mysql://192.168.100.121:3306/big_data --username root --password 1234             sqoop list-tables --connect jdbc:mysql://192.168.100.121:3306/big_data --username root -P    #使用 sqoop将数据库的数据导入到 Hdfs(地址使用认地址/user/$user/tabname) 斜杠后面不能有空格 而且需要启动yarn,因为要sqoop底层要执行mapreduce 当执行报错;classwrite的时候加入:--driver com.MysqL.jdbc.Driver \ sqoop import \ --connect jdbc:mysql://192.168.100.121:3306/big_data \ --driver com.MysqL.jdbc.Driver \ --username root \ --password 1234 \ --table t_area 需要放入那张表                           #使用指定的输出目录 --target-dir /tmp \             #使用指定的并发数量 -m 2 sqoop import \ --connect jdbc:mysql://192.168.100.121:3306/big_data \ --driver com.MysqL.jdbc.Driver \ --username root \ --password 1234 \ --table t_area \ --target-dir /sqoop \ -m 2 #使用sqoop将HDFS文件导出到 MysqL 表中,认MAP为 4个 ,先将空表建好t_area_copy1 sqoop export \ --connect jdbc:mysql://192.168.100.121:3306/big_data \ --driver com.MysqL.jdbc.Driver \ --table t_area_copy1 \ --username root \ --password 1234 \ --export-dir hdfs://192.168.200.200:9000/sqoop   MysqL导入到hive:     注意需要启动服务:hive服务开启 nohup hive --service metastore &                     再来启动hive      #使用自定义的条件,并且过滤字段,并发数为1 #切分的字段可以更改为另外一个字段   sqoop import \ --hive-import \ --hive-table t_area \ --connect jdbc:mysql://192.168.128.121:3306/big_data \ --username root \ --password 1234 \ --query "SELECT * from t_area where \$CONDITIONS"  \ //将MysqL中的表导入到hive表t_area --fields-terminated-by "," \ //按,分割,首先在hive中将表建好(z字段对应),并按,分割 --lines-terminated-by "\n" \ --target-dir /tmp/aa \ //临时存放的目录 -m 1 异常:org.apache.hadoop.hive.conf.HiveConf     Make sure HIVE_CONF_DIR is set correctly     解决:     在/etc/profile下面加上:         HADOOP_CLAsspATH=$HADOOP_CLAsspATH:$HIVE_HOME/lib/*         分布发送到其他主机上 source 一下      sqoop export \ --connect jdbc:mysql://192.168.100.121:3306/big_data \ 将hive的数据导出到MysqL:是通过hdfs中的路径导入到MysqL中 如果需要通过导入指定行的话,需要建立中间表 --driver com.MysqL.jdbc.Driver \ --table t_area1 \    //导入到MysqL表t_area1 --username root \ --password 1234 \     --export-dir /user/hive/warehose/t_area \          这个文件路径从hdfs上知道 --input-fields-terminated-by ',' 是以,分割的  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐