一些日常用到的命令shell,sqoop
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的字段全部查询出来,不分数据库
上一篇: c++静态变量
下一篇: FastCGI模式下运行php7