欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一些日常用到的命令shell,sqoop

程序员文章站 2024-02-21 17:00:46
...

shell中的一些命令:


:<<EOF

这个命令相当于idea中的/ /,中间的内容相当于被注释掉
EOF也可以换成别的字符,只要上下保持一致

EOF


1>$2 或者2>$1
这两个命令的理解如下:
在shell中
‘0’代表标准输入,在前台输入
‘1’代表正确输出,打印在控制台
‘2’代表错误输出,打印到控制台
‘>’代表重定向(覆盖)
'>>'代表重定向(追加)
执行shell命令打印到控制台的正确内容就是‘1’输出
执行shell命令打印到控制台的报错信息就是‘2’输出
echo 1>a.txt 2>b.txt 的意思是将正确内容覆盖到a.txt 将错误内容覆盖到b.txt

1>&2 正确返回值传递给2输出通道 &2表示2输出通道
如果此处错写成 1>2, 就表示把1输出重定向到文件2中.
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.

& 是一个描述符,如果1或2前不加&,会被当成一个普通文件。


exit :退出程序
约定0正确
约定大于0的错误,一般用1


删除文件内容:
true >文件名 注意>与文件名之间不可有空格
或者 vim进入编辑器后 :0,&d


sqoop命令

sqoop的命令行只能有一个,不能叠加


–hive-delims-replacement “ ” :可以将mysql中取到的\n, \r, and \01等特殊字符替换为自定义的字符,此处用了空格
–hive-drop-import-delims :可以将mysql中取到的\n, \r, and \01等特殊字符丢弃


–map-column-hive TMSTAMP=String :将sqoop中的java文件转换为hive表中类型 字段名=类型
–map-column-java MEMO=String :将mysql等数据源中的某个字段转换成java文件,在sqoop中 字段名=类型
如果只给-java的话,那么转换到hive中就会是-Java中设置的类型数据
如果只给-hive的话,那么hive中类型改变,可能因为类型不同导致这一列全为null


–table和–query不能一起使用


–as-parquetfile和–target-dir 不能一起使用(当路径中有‘.’的时候)


–hive-import --hive-database test --hive-table abc -split-by id\
hive的这几个命令与–as-parquetfile 一起用的时候中间不能有‘\’
–target-dir /user/hive/warehouse/test.db/abc --as-parquetfile
–warehouse-dir 导入的是源表中的一个文件夹,并不是part-0000-0000


如果不指定–hive-import的话就会导入到hdfs上
指定–hive-import也会先导入到hdfs上,然后load到hive表中


#查看所有数据库
bin/sqoop list-databases --connect jdbc:mysql://192.168.100.201:3306 --username ops --password ops_123

#查看所有表 这个的查询表必须指定到数据库
bin/sqoop list-tables --connect jdbc:mysql://192.168.100.201:3306/ops --username ops --password ops_123

#查看表属性
bin/sqoop eval --connect jdbc:mysql://192.168.100.201:3306/ops --username ops --password ops_123
–query “Select COLUMN_NAME, DATA_TYPE From INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME = ‘company’”

eval 就是用来执行sql语句的

-----------------------------------------------
| column_name          | data_type            | 
-----------------------------------------------
| id                   | int                  | 
| project_name         | varchar              | 
| data_classification  | varchar              | 
| hive_desc            | varchar              | 
| hive_name            | varchar              | 
| id                   | int                  | 
| bank_name            | varchar              | 
| data_classification  | varchar              | 
| project_name         | varchar              | 
| hive_name            | varchar              | 
-----------------------------------------------

会将所有表名字是company的字段全部查询出来,不分数据库