liumumumumumu

不想写 没办法 记不住

nmcli 常用命令 - ALMA9 配置静态 ip

前言

centos已经死了,作为用户量最大的RHEL衍生发行版,在2022年1月1日结束了centos8生命周期;而到2024年6月centos7支持结束之前,时间会给我们一个最合格的centos继任者,在此,我的选择是Alma Linux。

img

二、centos8/alma8网络管理命令变化:
centos8/alma8系统,弃用了network.service,采用NetworkManager(NM)网络管理器,因此命令为nmcli。

三、操作命令:
查看当前网络信息

[root@alma8 ~]# nmcli
ens224: connected to ens224
        "VMware VMXNET3"
        ethernet (vmxnet3), 00:50:56:8E:02:B1, hw, mtu 1500
        inet4 192.168.200.10/24
        route4 192.168.200.0/24
        inet6 fe80::9c44:37c2:db12:5fcd/64
        route6 fe80::/64

lo: unmanaged
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

DNS configuration:
        servers: 192.168.200.1 192.168.200.2
        domains: 9sb.org
        interface: ens224

重新加载网卡配置文件

[root@alma8 ~]# nmcli connection reload

停止网卡、激活网卡
激活不仅是启动网卡,还会重新加载网卡配置文件

[root@alma8 ~]# nmcli connection down ens224
Connection 'ens224' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

[root@alma8 ~]# nmcli connection up ens224
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

查看全部网卡信息

[root@alma8 ~]# nmcli device show
GENERAL.DEVICE:                         ens224
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:50:56:8E:02:B1
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens224
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/5
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.200.10/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.200.0/24, nh = 0.0.0.0, mt = 101
IP4.DNS[1]:                             192.168.200.1
IP4.DNS[2]:                             192.168.200.2
IP4.DOMAIN[1]:                          9sb.org
IP6.ADDRESS[1]:                         fe80::9c44:37c2:db12:5fcd/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 101

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ::1/128, nh = ::, mt = 256

查看单个网卡信息

[root@alma8 ~]# nmcli device show ens224
GENERAL.DEVICE:                         ens224
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:50:56:8E:02:B1
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens224
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/5
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.200.10/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 192.168.200.0/24, nh = 0.0.0.0, mt = 101
IP4.DNS[1]:                             192.168.200.1
IP4.DNS[2]:                             192.168.200.2
IP4.DOMAIN[1]:                          9sb.org
IP6.ADDRESS[1]:                         fe80::9c44:37c2:db12:5fcd/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 101

查看网卡设备状态

[root@alma8 ~]# nmcli device status
DEVICE  TYPE      STATE      CONNECTION
ens224  ethernet  connected  ens224
lo      loopback  unmanaged  --

查看网卡信息

[root@alma8 ~]# nmcli connection show
NAME    UUID                                  TYPE      DEVICE
ens224  bcb687ae-9883-4453-ad03-74087a9f4477  ethernet  ens224

创建网卡配置文件

[root@alma8 ~]# nmcli con add type ethernet con-name ens224.1 ifname ens224
Connection 'ens224.1' (4187eb22-d317-4dc1-82f5-c81a97d8bbd4) successfully added.
[root@alma8 ~]# nmcli connection show
NAME      UUID                                  TYPE      DEVICE
ens224    bcb687ae-9883-4453-ad03-74087a9f4477  ethernet  ens224
ens224.1  4187eb22-d317-4dc1-82f5-c81a97d8bbd4  ethernet  --

删除网卡配置文件

[root@alma8 ~]# nmcli con delete ens224.1
Connection 'ens224.1' (4187eb22-d317-4dc1-82f5-c81a97d8bbd4) successfully deleted.

修改网卡是否为自启,默认自启

[root@alma8 ~]# nmcli con mod ens224 connection.autoconnect no
[root@alma8 ~]# grep ONBOOT /etc/sysconfig/network-scripts/ifcfg-ens224
ONBOOT=no

[root@alma8 ~]# nmcli con mod ens224 connection.autoconnect yes
[root@alma8 ~]# grep ONBOOT /etc/sysconfig/network-scripts/ifcfg-ens224
ONBOOT=yes

修改网卡是否自动获取IP,并配置静态IP地址

[root@alma8 ~]# nmcli con modif ens224 ipv4.method auto
[root@alma8 ~]# grep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-ens224
BOOTPROTO=dhcp

[root@alma8 ~]# nmcli con modif ens224 ipv4.method manual ipv4.addresses 192.168.200.200/24 ipv4.gateway 192.168.200.1 connection.autoconnect yes ipv4.dns 114.114.114.114,114.114.115.15      

[root@alma8 ~]# cat  /etc/sysconfig/network-scripts/ifcfg-ens224
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
UUID=bcb687ae-9883-4453-ad03-74087a9f4477
DEVICE=ens224
ONBOOT=yes
IPADDR=192.168.200.200
PREFIX=24
GATEWAY=192.168.200.1
DNS1=114.114.114.114
DNS2=114.114.115.15

[root@alma8 ~]# nmcli con up ens224
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)

[root@alma8 ~]# ip add
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:8e:02:b1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.200/24 scope global noprefixroute ens224
       valid_lft forever preferred_lft forever
    inet6 fe80::9c44:37c2:db12:5fcd/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

四、完成一次完整操作,服务器添加一块网卡,配置IP、DNS、网关。

添加网卡后,出现了Wired connection 1,但是没有对应的配置文件
[root@alma8 ~]# nmcli con show
NAME                UUID                                  TYPE      DEVICE
Wired connection 1  ee5fc609-9606-3e44-841d-601fc7d562ab  ethernet  ens256
[root@alma8 ~]# ll /etc/sysconfig/network-scripts/
total 8


删除Wired connection 1
[root@alma8 ~]# nmcli con delete "Wired connection 1"
Connection 'Wired connection 1' (ee5fc609-9606-3e44-841d-601fc7d562ab) successfully deleted.

新建ens256
[root@alma8 ~]# nmcli con add type ethernet con-name ens256 ifname ens256
Connection 'ens256' (d90d5e30-7c76-4a62-92de-0fb4d4a0a41f) successfully added.

已生成ens256配置文件
[root@alma8 ~]# ll /etc/sysconfig/network-scripts/
total 12
-rw-r--r--. 1 root root 282 May  4 13:54 ifcfg-ens256

为ens256配置网络
[root@alma8 ~]#  nmcli con modif ens256 ipv4.method manual ipv4.addresses 192.168.200.201/24 ipv4.gateway 192.168.200.1 connection.autoconnect yes ipv4.dns 114.114.114.114,114.114.115.15

重新加载ens256配置文件
[root@alma8 ~]# nmcli con up ens256
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/13)

查看网卡信息
[root@alma8 ~]# ip addr
4: ens256: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:8e:4d:94 brd ff:ff:ff:ff:ff:ff
    inet 192.168.200.201/24 brd 192.168.200.255 scope global noprefixroute ens256
       valid_lft forever preferred_lft forever
    inet6 fe80::374f:9c09:1e47:e0fa/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

修复 Hive 表分区

使用语句

msck repair table <database>.<table>

可以修复因操作 hdfs 导致的 HIVE MetaStore 数据不一致问题。

如果表分区为嵌套结构(多级分区),在执行语句时可能会出现如下错误:

ERROR : FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

这是因为

Starting with Hive 1.3, MSCK will throw exceptions if directories with disallowed characters in partition values are found on HDFS. Use hive.msck.path.validation setting on the client to alter this behavior; “skip” will simply skip the directories. “ignore” will try to create partitions anyway (old behavior). This may or may not work.

翻译成中文的大概意思就是:

​ 从 Hive 1.3 开始,如果在分区的 HDFS 目录中发现不允许的字符,MSCK 将抛出异常。可以使用客户端上的 hive.msck.path.validation 设置来更改此行为; “skip” 将简单地跳过目录。 “ignore” 将无论如何都会尝试创建分区(旧行为)。

即在执行修复语句之前先将hive.msck.path.validation设置为 ignore

set hive.msck.path.validation=ignore;
msck repair table <database>.<table>;

即可。

Trino UDF 开发

UDF 开发

UDF 打包

使用 maven 管理依赖,使用 maven-shade-plugin 打 fat 包。在 pom.xml 增加如下 build 标签

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>3.2.4</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <artifactSet>
                            <excludes>
                                <exclude>io.trino:trino-spi</exclude>
                                <exclude>io.trino:trino-array</exclude>
                                <exclude>joda-time:joda-time</exclude>
                                <exclude>io.airlift:log</exclude>
                            </excludes>
                        </artifactSet>
                        <shadedArtifactAttached>true</shadedArtifactAttached>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/DEPENDENCIES</exclude>
                                    <exclude>META-INF/LICENSE*</exclude>
                                    <exclude>META-INF/NOTICE*</exclude>
                                    <exclude>META-INF/MANIFEST*</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>

        <!-- Tweak the compiler to use more memory and use UTF-8 for the source code. -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.10.1</version>
            <configuration>
                <source>${maven.compiler.source}</source>
                <target>${maven.compiler.source}</target>
                <encoding>${project.build.sourceEncoding}</encoding>
                <showWarnings>true</showWarnings>
            </configuration>
        </plugin>

        <!-- Resource plugins should always use UTF-8 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.2.0</version>
            <configuration>
                <encoding>${project.build.sourceEncoding}</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

由于 Trino 依赖 Java 11,所以 UDF 同样需要 Java 11 开发和编译。

# 使用 sdkman 环境工具切换到 java 11 环境 (开发环境基础工具,自行搜索安装及用法)
sdk use java 11.0.14.fx-zulu
mvn clean package

UDF 部署

Kudu 磁盘缩容

停止服务

  1. 停止要缩容磁盘的 ts 服务(我这个是已经停掉了,所以按钮是灰的)
image-20220321163933969
阅读全文 »

搭建这个博客

前言

重启博客计划拖延了很久,一直在纠结使用 Hexo 还是 Hugo。

Hugo 比较快,但 Hexo 有 NexT 主题。

慢就慢吧,但愿我的文章可以多到 Hexo 解析不动的那一天。

阅读全文 »

Trino 动态分区

Hive 可以动态分区插入,方法如下:

#开启动态分区,默认是false
set hive.exec.dynamic.partition=true;
#开启允许所有分区都是动态的,否则必须要有静态分区才能使用。
set hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table tablename partition (分区字段)
select a, b, year from tab;
阅读全文 »
0%