sqoop(一)hive导数据过程中的命令和问题

一. sqoop 命令

  1. cd $SQOOP_HOME/bin
    在这里插入图片描述
  2. 列出 database中的所有表,我这里只有一个表temp
 sqoop list-tables --connect "jdbc:mysql://11.11.1111.11:3306/testdatabase"  \
 --username aaa --password 'bbb' 

sqoop(一)hive导数据过程中的命令和问题_第1张图片
3. 导入所有表

sqoop import-all-tables --connect "jdbc:mysql://11.11.111.11:3306/testdatabase" --username aaa --password 'aaa' --hive-import --hive-database testone

sqoop(一)hive导数据过程中的命令和问题_第2张图片
sqoop(一)hive导数据过程中的命令和问题_第3张图片
sqoop(一)hive导数据过程中的命令和问题_第4张图片
4. 如果只导入一张表 (或者先创建再导入) 注意每一个 \ 后面都不能有空格

–hive-drop-import-delims 去掉字段里的\n\r\t等
–hive-delims-replacement ‘||’ 用||替换\n\r\t等
上面这两个参数只能有一个
–fields-terminated-by ‘\t’ 字段已\t分割 就是insert这张表的时候字段有‘\t’被视为两个字段 如果写成"," 那字段里就不能有","

 sqoop import   \

 --connect "jdbc:mysql://11.11.111.11:3306/testdatabase" \
 --username aaaa--password 'aaa' \
 --table temp3  \
 --hive-overwrite  \
 --hive-database testone \
 --create-hive-table \
 --hive-table temp3  \
 --hive-drop-import-delims  \
 --fields-terminated-by '\t' \
 --delete-target-dir  \
 --m 3;  

sqoop(一)hive导数据过程中的命令和问题_第5张图片

二. hive 命令

  1. $HIVE_HOME/bin/hive
    也可以直接在sqoop 中用 hive -database testone 或者 hive -e “use database; select * from temp;”
    hive 语法和mysql基本一样(但还是有不一样的!!)
    sqoop(一)hive导数据过程中的命令和问题_第6张图片
  2. show databases;
    在这里插入图片描述
  3. 创建database
    create database testone;
    在这里插入图片描述
  4. 查询database,
    查询数据 select * from tablename;
    查看表结构 desc tablename
    sqoop(一)hive导数据过程中的命令和问题_第7张图片
    sqoop(一)hive导数据过程中的命令和问题_第8张图片
    INSERT OVERWRITE 覆盖插入
    INSERT INTO 插入

没设置成桶表的话,不能删除数据

问题一: hive在linux中没办法使用 delete 和 backspace
https://blog.csdn.net/kicilove/article/details/78423178

问题二:org.apache.hadoop.mapred.FileAlreadyExistsException:Output directory hdfs://xxx/user/root/temp
删掉文件夹
hadoop fs -rmr /user/root/temp

问题三:mysql导入null到hive的时候会变成"null"加下面两句话
–null-string ‘\N’
–null-non-string ‘\N’ \

你可能感兴趣的:(数据库)