操作系统安装相关

systemctl status firewalld CentOS7 查看防火墙状态
telnet
cat /etc/redhat-release 查看操作系统版本
uname -r
uname -a
who -b 查看最近一次重启时间
last reboot 查看重启历史

网络

ifconfig 查看网络信息
ifconfig -a 查看所有网卡
lspci 查看网卡信息

修改主机名

hostname newName
hostnamectl newName
相关配置文件(/etc/hosts /etc/sysconfig/network)

修改环境变量

vi /etc/profile
export JAVA_HOME=/usr/lib/awaken/openjdk8/
export MAVEN_HOME=/opt/apache-maven-3.5.4
export HADOOP_HOME=/usr/lib/graph001/SERVICE-HADOOP-admin/
export SPARK_HOME=/usr/lib/awaken/spark/
export PATH=PATH:JAVA_HOME/bin:SPARK_HOME/bin:HADOOP_HOME/bin:$MAVEN_HOME/bin
source /etc/profile

磁盘 / 分区

tree -L 1 以树的形式,查看目录
parted -l 查看接入了哪些磁盘(发现/dev/sdb待挂载)

注意还有fdisk命令,也是一个分区工具,但是较为落后(不支持2T以上硬盘的创建分区,不支持GPT格式),使用较少了 parted命令较为复杂, 但是是交互式的,可以进去交互式操作,执行分区和查看操作 -m 可以查看帮助信息
man parted 可以查看linux的官方帮助 centos7之前的版本默认文件系统是EXT4,现在是XFS,更加先进

lsblk 列出所有可用的块设备的信息,及其依赖关系
lsblk -f
mkfs -t ext4 /dev/sdb 格式化该磁盘
mkdir /mnt/disk1 建立新文件夹,用于挂载新磁盘
blkid -o value -s UUID /dev/sdc 生成一个磁盘的UUID

blkid 可以查看块设备的文件系统类型、LABEL、UUID等信息

parted /dev/sdb print 查看磁盘的简单信息
vim /etc/fstab 修改挂载 将这个UUID指定到/mnt/disk1上去挂载
mount -a 按照/etc/fstab重新挂载磁盘
umount -l /PATH/OF/BUSY-DEVICE umount a busy device
从LVM 逻辑卷中移除磁盘

格式化磁盘失败,尝试: dmsetup status dmsetup remove_all 发现该盘的sda3是swap分区 swapoff -v /dev/sda3 即可关闭该swap分区 然后lsblk发现sda上再无挂载点 执行echo y | mkfs -t ext4 /dev/sda成功

  1. 一段快速挂载磁盘的命令(SSD
  2. echo y | mkfs -t ext4 /dev/sdb
  3. echo y | mkfs -t ext4 /dev/sdc
  4. echo y | mkfs -t ext4 /dev/sdd
  5. echo y | mkfs -t ext4 /dev/sde
  6. seq 1 4 | xargs -I{} -t mkdir -p /mnt/ssd{}
  7. \cp -f /etc/fstab /etc/fstab.bk
  8. blkid | grep TYPE=\"ext4\" | tail -4 | awk 'BEGIN{i=1}{print $2, "/mnt/ssd"i++, " ext4 noatime 0 0" }' >> /etc/fstab
  9. mount -a

yarn

120集群yarn日志的位置
/var/log/SERVICE-HADOOP-ff0917a859de41be8d3371e3f64b7b9f/yarn/apps/
yarn logs —help
查看特定任务的特定executor日志
yarn logs -applicationId application_1564729189702_0465 -containId container_1564729189702_0465_01_000003
查看特定任务的driver日志
yarn logs -applicationId application_1564729189702_0465
yarn logs -applicationId -out
取消任务
yarn application -kill application_1605668197400_030

资源 监控

top -p pid 查看该pid的资源占用
ps -ef | grep defunct 查看僵尸进程
jcmd GC.run 强制执行gc
netstat -nltp |grep 149403 根据进程号查看该进程占用的端口号
lsof -i:9200 查看当前主机上9200端口上的连接
java -XX:+PrintFlagsFinal -version |grep ThreadStackSize 查看当前机器的栈深度
cat /proc/10087/status 查看某进程的资源占用,VmRSS即占用的内存

awk ‘END{print NR}’ deploy.sh 查看该文件的行数
lsof list open files 列出系统当前打开的文件


句柄

lsof -n|awk ‘{print $2}’|sort|uniq -c|sort -nr| more 对系统中每个进程占用的句柄数进行排序展示
ulimit -n 查看系统默认句柄数
Linux 命令神器:lsof

hadoop dfs -du -h /root 查看目录下各个文件夹的大小
du -sh 查看当前目录总的占用空间
du -sh ./* 查看当前目录下各个子目录的占用空间
beeline 连接hive
!connect jdbc:hive2://10.3.69.190:10000

hive中复制表(数据和结构)
create table default.car as select * from table;


跨主机的文件传输
scp -r ./medusa-0.4-SNAPSHOT-20200310/ root@10.3.67.102:/home/lcg/
本地传输到远程
scp root@10.19.134.148:/home/hik/medusa-task-graph-data-0.6.1-SNAPSHOT.jar ./
远程传输到本地当前目录

跨机器执行cmd

  1. # start.sh content
  2. # 获取当前集群的所有node,然后每一个节点都执行exec_cmd.sh脚本里面的内容
  3. #!/bin/bash
  4. kubectl get node -o wide|awk '{print $6}'|grep 10|xargs -I{} -t sh exec_cmd.sh {}
  1. # exec_cmd.sh content
  2. #!/bin/bash
  3. sshpass -p Ch4ll3ng3M3! ssh wbxbuilds@$1 > /dev/null 2>&1 << eeooff
  4. sudo su
  5. yum --disablerepo=kubernetes install -y nfs-utils
  6. exit
  7. eeooff
  8. echo $1 done!

参考Linux Shell远程执行命令
ssh登录时如何直接在参数中加入登录密码

vi

vi替换
将整个文件中的a都替换为b
:%s/a/b/g
%代表整个文件
s代表替换操作
g表示
:set number 展示行数

  • nohup执行: nohup ./nodejs/bin/node app.js >/dev/null 2>&1 &

    /dev/null 代表把标准输出到黑洞设备

  • 2>&1 表示把错误输出重定向到标准输出,而标准输出已经配置到黑洞了,所以错误也会进入黑洞

    解压/压缩

    //指定解压为targz
    tar -zxvf hbp-2.1.2-20191018R1.tar.gz
    //压缩,指定后面的文件夹,压缩为前面指定名字的文件
    (注意,文件夹使用绝对路径的话,压缩出来的包,也会有这么多的路径)
    tar -zcvf ./hbp-2.1.0_20200323_awaken_lcg.tar.gz ./hbp-2.1.0_20200323_awaken

查看压缩包内文件内容
tar tvf hbp-2.1.0_20200323_awaken.tar.gz

zip -r ./name.zip ./dirName

PG 数据库

帮助:pg_dump —help
导出库
./pg_dump -U postgres -s -f /mnt/disk2/users/longminggang/sql/medusa_metadata.sql -d medusa_metadata
容器内
pg_dump -h service-postgresql-medusa-entry -p 5432 -U postgres -d medusa_query -s -f /tmp/medusa_query.sql
导出表数据
./pg_dump -U postgres -a —column-inserts -f /mnt/disk2/users/longminggang/sql/ontology_instance.sql -d medusa_metadata -t ontology_instance
pg_dump -h service-postgresql-medusa-entry -p 5432 -U postgres -d medusa_instance > /home/medusa_instance1.sql
登录进pg的shell
psql -U postgres -d medusa_instance -h service-postgresql-admin-entry -p 5432
linux访问网页,下载文件
curl -o 2.1.0_20200323_awaken/hbp-2.1.0_20200323_awaken.tar.gz http://af.hikvision.com.cn/artifactory/bigdata-release/com/hikvision/bigdata/archives/v1/hbp/2.1.0_20200323_awaken/hbp-2.1.0_20200323_awaken.tar.gz

日志

[

](http://10.3.70.126:9200/_plugin/kopf/#!/cluster)
手动起thrift的命令
./elasticsearch -Des.insecure.allow.root=true -d
start-thriftserver.sh —master yarn-client —conf spark.driver.memory=10g —conf spark.yarn.executor.memoryOverhead=2048 —num-executors 2 —executor-memory 6g

journalctl 日志?
systemctl status docker = service docker status

切分大日志文件
split -b 10m log.txt prefix —verbose

split -l 300 log.txt prefix —verbose

软连接

ln -s /etc/graph001/SERVICE-HADOOP-admin/hdfs-site.xml hdfs-site.xml
ln -s /etc/graph001/SERVICE-HADOOP-admin/core-site.xml core-site.xml
ln -s /etc/graph001/SERVICE-HBASE-medusa/hbase-site.xml hbase-site.xml

配置es集群单节点的最大shard
curl -u admin:xxx -H “Content-Type: application/json” -XPUT ‘{{ ES_HOST }}:9200/_cluster/settings’ -d ‘{“persistent”:{“cluster”:{“max_shards_per_node”:10000}}}’

socket

nc -l 9090 使用netcat工具,在9090端口开启socket server,发送消息过去

时间

  1. date --date='-1 day' +%Y-%m-%d
  2. date -d last-day +%Y-%m-%d
  3. 按照格式打印昨天日期
  4. -d 后面的字符串描述一个特定的时间,然后总体的date命令把这个时间打印出来
  5. 后面的字符串可以是:
  6. --date="2/02/2010"
  7. --date="Feb 2 2010"
  8. --date="2 year ago"
  9. --date="5 sec ago"
  10. --date="yesterday"
  11. --date="tomorrow"
  12. --date="next tue"
  13. --date="1 year"
  14. --date="-1 day" 一年前

yum

  1. #add repo
  2. yum-config-manager --add-repo repository_url
  3. # how to add repo
  4. https://www.cyberciti.biz/faq/installing-rhel-epel-repo-on-centos-redhat-7-x/
  5. # intall specific version
  6. yum install <package name>-<version info>