大数据 日常操作

说明:本文档只是记录个人在工作中常用的一些命令与操作。

目录

说明:本文档只是记录个人在工作中常用的一些命令与操作。

一、linux

1.1 查看端口占用情况

1.2 查看当前目录使用情况

 du (disk usage): 显示每个文件和目录的磁盘使用空间,也就是文件的大小。

1.3 nohub 执行 Java 程序

二、往 kafka mock 数据

        2.1 使用Java 方式,往 kafka mock数据

三、hadoop 

1、在做集群节点有变动时,服务新节点或退役旧节点时,

2、HDFS 直接操作

2.1  -rm:删除文件或文件夹

2.2 注册 UDF 函数

2.3 创建 snappy 压缩表



一、linux

1.1 查看端口占用情况

man help 都是查看命令的帮助文档。

一般用 man 比较多,比如 man ps。

-- 1、查看端口占用情况

netstat -tunlp | grep 8200

-- 2、查看被哪个进程所占用
jps | grep 进程号

[root@sandbox-bigdata-1 elasticsearch]# netstat -tunlp | grep 8200
tcp6       0      0 10.39.235.24:8200       :::*                    LISTEN      99839/java 

[root@sandbox-bigdata-1 elasticsearch]# netstat -anpt | grep 8200
tcp        0      0 10.39.235.24:59672      10.39.235.24:8200       TIME_WAIT   -                   
tcp        0      0 10.39.235.24:58534      10.39.235.24:8200       TIME_WAIT   -                   
tcp        0      0 10.39.235.24:59052      10.39.235.24:8200       TIME_WAIT   -                   
tcp        0      0 10.39.235.24:60888      10.39.235.24:8200       TIME_WAIT   -                   
tcp6       0      0 10.39.235.24:8200       :::*                    LISTEN      99839/java          
tcp6       0      0 10.39.235.24:8200       172.26.22.59:53776      ESTABLISHED 99839/java          
tcp6       0      0 10.39.235.24:8200       172.26.18.147:54848     ESTABLISHED 99839/java          
tcp6       0      0 10.39.235.24:8200       172.26.18.147:54849     ESTABLISHED 99839/java   

注意:其中 8200 端口前 是监听的哪个ip下的端口号。

1.2 查看当前目录使用情况

 du (disk usage): 显示每个文件和目录的磁盘使用空间,也就是文件的大小

-h            #以K  M  G为单位显示,提高可读性(最常用的一个)

du -sh *

du -sh /*  表示根目录使用情况。

真实环境下测试:


df命令可以显示目前所有文件系统的可用空间及使用情形
df -h

通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。

查询当前目录总大小可以使用du -sh,其中s代表统计汇总的意思,即只输出一个总和大小。

-- 显示目录下的几级   PLSQL/ 表示在哪个目录下  已经测试过真实可用的
 对于指定文件夹也可以指定显示层次深度,如du -h --max-depth=0 PLSQL/及du -h --max-depth=1 PLQSL/  

1.3 nohub 执行 Java 程序

nohup java -cp jar ihsplatform-data-kafka-1.0.0.0-SNAPSHOT.jar com.baidu.ihs.data.kafka.producer.MockJX  2>&1 > /dev/null  &

Linux nohup 命令 | 菜鸟教程

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:

nohup /root/runoob.sh &
ps -aux | grep "runoob.sh" 

ps 是显示所有活动进程。

 

二、往 kafka mock 数据

        2.1 使用Java 方式,往 kafka mock数据

                用途

                        ①、当数据没有接入时,可以先往kafka中mock些数据,以测试代码逻辑。

                        ②、有些实时sink到新组件的测试,比如 读取 kafka 的数据到 es。

package com.baidu.ihs.data.kafka.producer;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;
import java.util.Random;


public class MockSanSi {
    private static final String JING_XIOING_TEST_BOOT_STRAP_SERVER="10.39.235.24:8092";
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("bootstrap.servers", JING_XIOING_TEST_BOOT_STRAP_SERVER);
        props.put("acks", "-1");
        props.put("retries", 0);
        // props.put("batch.size", 16384);
        props.put("linger.ms", 1);
        // props.put("buffer.memory", 33554432);
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        Producer<String, String> producer = new KafkaProducer<>(props);

        int k = 0;

        for (int i = 0;i < 10; i++){
            int num = 0;
            while (true) {

                k++;
                String meesage = "{\"id\":\""+k+"\",\"road_name\":\"京雄test\",\"road_dir\":2,\"create_time\"" +
                        ":\"2022-03-28\"}";

                System.out.println(">>>>>>");
                System.out.println(meesage);
                // 超过10000条停止
                if (num > 10) {
                    k--;
                    break;
                }
                num++;
                // 发送kafka小心 json
                producer.send(new ProducerRecord<>("rsl_bas_road_base_kafka_4", String.valueOf(num), meesage));
    //            try {
    //                Thread.sleep(1);
    //            } catch (InterruptedException e) {
    //                e.printStackTrace();
    //            }

        }

    }
        producer.close();
    }
}

三、hadoop 

1、在做集群节点有变动时,服务新节点或退役旧节点时,

如果数据不均衡,可以用命令实现集群的再平衡

[hadoop102 sbin]$ ./start-balancer.sh

2、HDFS 直接操作

2.1  -rm:删除文件或文件夹

[hadoop]$ hadoop fs -rm /user/test/jinlian2.txt

        真实环境测试(这个不要在用了,会造成元数据无法删除):

-- 删除分区数据,可以进行模糊匹配删除多个分区的数据,真实删除物理磁盘上的数据。
[hadoop-3.1.3]$ hadoop fs -rm -r -f /user/hive/stg/rsl_road_base/dt=2021-12-*

用这个可以彻底删除数据: 

-- 删除单个分区
ALTER TABLE stg_uniview_traffic_flow_info_h drop PARTITION (dt='2021-09-08');
-- 删除多个分区
ALTER TABLE stg_uniview_traffic_flow_info_h drop PARTITION (dt>'2021-09-08', dt<'2022-07-01');

2.2 注册 UDF 函数

create function explod_time as 'com.baidu.ihs.data.hive.udtf.ExplodTime' using jar  'hdfs://bigdata-1:9000/user/hive/resource/udf/ihsplatform-data-udf-1.0.0.0-SNAPSHOT.jar';

2.3 创建 snappy 压缩表


CREATE EXTERNAL TABLE `rsl_ud_devc_multcopt_d`(
  `state_time` string COMMENT 'yyyyMMddHHmmss ??',
  `devc_id` string COMMENT '??ID/???? ?????????',
  `road_name` string COMMENT '????',
  `road_id` string COMMENT '??id',
  `road_number` string COMMENT '????',
  `lane_num` bigint COMMENT '???? ????1????????????',
  `stake_code` string COMMENT '??',
  `stake_dir_no` string COMMENT '????',
  `obstacle_id` string COMMENT '?????id',
  `flow` bigint COMMENT '??? ????',
  `speed` double COMMENT '???? ??km/h',
  `vhc_type_no` bigint COMMENT '????,????,',
  `source` bigint COMMENT '???????,??hk?????-1?????????AI???-2?etc-3?????-4????-5?mec-6')
COMMENT '???????????-???'
PARTITIONED BY (
  `dt` string COMMENT '??',
  `post_code` string COMMENT '????')
ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\u0001'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
TBLPROPERTIES (
  'last_modified_by'='hdfs',
  'last_modified_time'='1657015748',
  'orc.compress'='SNAPPY',
  'transient_lastDdlTime'='1657015748')
;

当报错 text 不能转化为 orc 时:

Caused by: java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.hive.ql.io.orc.OrcSerde$OrcSerdeRow
	at org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat$OrcRecordWriter.write(OrcOutputFormat.java:81)
	at org.apache.hadoop.hive.ql.exec.FileSinkOperator.process(FileSinkOperator.java:763)
	at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:841)
	at org.apache.hadoop.hive.ql.exec.SelectOperator.process(SelectOperator.java:88)
	at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:841)
	at org.apache.hadoop.hive.ql.exec.FilterOperator.process(FilterOperator.java:122)
	at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:841)
	at org.apache.hadoop.hive.ql.exec.TableScanOperator.process(TableScanOperator.java:133)
	at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:170)
	at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:555)
	... 18 more

这里将表的序列化方式修改为orc:

ALTER TABLE rsl_ud_devc_multcopt_d SET FILEFORMAT ORC;

四、hive

 4  基础操作

        4.1 表的重命名

ALTER TABLE rsl_ud_devc_multcopt_d rename to rsl_ud_devc_multcopt_d_test;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值