Linux用到的大数据相关命令

Linux命令大全

大数据相关的命令

1、hdfs文件down到本地

hadoop dfs -getmerge hdfs_path/* nas_path/temp

2、远程集群复制 distcp /跨机器复制 scp

1)本来是远程复制的
hadoop distcp 复制的地址1 复制目的地地址2

因为两个集群都是有认证的,彼此不通所以方案一取消
查看要复制的文件大小:
hadoop dfs -du -s -h 要复制的文件

2 )远程复制的行不通,那就hdf get到本地,然后scp到目的集群本地然后再上传。
before_folder 是复制前的文件目录所在地
remote_folder 是复制后的目标目录地址

scp before_folder 目标用户名@目标ip:remote_folder

====接口文件
1、数据文件字段分割符
1)0X1F (不可见字符)
对应的十六进制0x1f, 对应的十进制也就是31;
ASCII码0x1F;记录分割符:0x0A(换行);文件编码:UTF-8;
2)0x7c(|)
竖线”|”,即ASCII码0x7C;文件编码:UTF-8;
3)0x0A
分割符:0x0A(换行);文件编码:UTF-8;
4) 特殊字符 €,
这个在ASCII的字符对应编码中没有,是很特殊的,对应的十六进制的x80
文件编码:GBK;
在这里插入图片描述

总结:
(十六进制)0x7c =(十进制)124
(十六进制)0x1f =(十进制)31
(十六进制)0x1a =(十进制)10 --换行符

======实际生产的应用

1、对于数据接入文件的时候,需要有列分割符,也需要有校验文件(校验数据文件的大小、记录数、时间),如果数据文件行数和校验文件中记录的行数一致,那么就校验通过。
1)列分割符需要在建表的时候指定

CREATE EXTERNAL TABLE `ods.poms_10108_program_ex`(
 `program_id` string, 
 `program_name` string )
PARTITIONED BY ( 
 `src_file_day` string, 
 `src_file_hour` string)
ROW FORMAT DELIMITED 
 FIELDS TERMINATED BY '31' 
STORED AS INPUTFORMAT 
 'com.migu.hive.inputformat.MiguInputFormatNew' 
OUTPUTFORMAT 
 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
 'hdfs://ns1/user/hadoop/ods/wangda/poms/poms-10108'

--31就是列分割负,也就是接口文件中的0x1f

2)如果在拿到数据时候,判定数据分割符是否是文件正常分割符的时候,可以用命令直接测试: awk -F ‘分隔符’ ‘{print $1}’ 数据文件
在这里插入图片描述
3)VERF_FILE_SPLIT 可以在接口接入的时候指定校验文件分隔符 ,可以让校验文件按照指定的校验分割负进行划分,从而验证数据文件的行数和校验文件的记录数是否一致(为了防止数据文件比多写数据,而校验文件并没有完全生成的异常出现)。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值