编程常用命令总结

编程命令大全

  • 1.软件环境变量的配置
    • Java
    • Scala
    • Spark
    • Hadoop
    • Hive
  • 2.大数据软件常用命令
    • Spark基本命令
    • Spark-SQL命令
    • Hive命令
    • HDFS命令
    • YARN命令
    • Zookeeper命令
    • kafka命令
    • Hibench命令
    • MySQL命令
  • 3.Linux常用命令
    • Git命令
    • conda命令
    • pip命令
    • 查看Linux系统的详细信息
    • 查看Linux系统架构(X86还是ARM,两种方法都可)
    • 端口号命令
    • Linux建立/删除/切换用户命令
    • Vim命令
    • Chmod命令
    • Nohup命令
    • df,du查看命令
    • Zip与Unzip命令
    • 输出重定向命令
    • 命令的pipeLine执行
    • AWK命令
    • 清除缓存
    • 查看逻辑CPU的个数

1.软件环境变量的配置

Java

以JDK8为例

export JAVA_HOME=/home/BernardX/Toolkits/jdk8u191-b12
export PATH=${JAVA_HOME}/bin:${PATH}
export JRE_HOME=${JAVA_HOME}/jre

Scala

以scala2.11为例

export SCALA_HOME=/home/lemaker/Toolkits/scala-2.11.8
export PATH=${SCALA_HOME}/bin:${PATH}

Spark

以Spark2.4.5为例:

export SPARK_HOME=/home/lemaker/open-source/spark-2.4.5-bin-hadoop2.7
export PATH=${SPARK_HOME}/bin:${PATH}

Hadoop

以Hadoop2.7为例:

export HADOOP_HOME=/home/lemaker/HadoopEnv/hadoop-2.7.4
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${PATH}
export LD_LIBRARY_PATH=${HADOOP_HOME}/lib/native
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

Hive

以Hive2.3.5为例:

export HIVE_HOME=/home/lemaker/HadoopEnv/apache-hive-2.3.5-bin
export PATH=${HIVE_HOME}/bin:${PATH}
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export HCAT_HOME=${HIVE_HOME}/hcatalog

配置完成之后运行此命令(对当前用户的环境变量进行配置):

source ~/.bashrc

不要运行(对该机器上所有用户环境变量进行配置)命令,会污染当前机器其余用户的环境变量,/etc/profile的优先级会高于~/.bashrc文件,会进行环境变量的一个覆盖:

source /etc/profile

2.大数据软件常用命令

Spark基本命令

启动standalone模式下的所有集群(master以及slave节点)

bash $SPARK_HOME/sbin/start-all.sh

启动Spark HistoryServer

bash $SPARK_HOME/sbin/start-history-server.sh

Spark-SQL命令

注意部分Spark SQL跟Hive命令是通用的,比如使用数据库,查看表的信息等等。
选择使用的数据库名字

sql("use tpcds_1000_parquet");

解析Query语句,打印执行过程中的计划

sql("specific query").explain(true);     

以TPC-DS中的Query1为例:

sql("WITH customer_total_return AS (SELECT sr_customer_sk AS ctr_customer_sk, sr_store_sk AS ctr_store_sk, sum(sr_return_amt) AS ctr_total_return FROM store_returns, date_dim WHERE sr_returned_date_sk = d_date_sk AND d_year = 2000 GROUP BY sr_customer_sk, sr_store_sk) SELECT c_customer_id FROM customer_total_return ctr1, store, customer WHERE ctr1.ctr_total_return >  (SELECT avg(ctr_total_return)*1.2 FROM customer_total_return ctr2 WHERE ctr1.ctr_store_sk = ctr2.ctr_store_sk) AND s_store_sk = ctr1.ctr_store_sk AND s_state = 'TN' AND ctr1.ctr_customer_sk = c_customer_sk ORDER BY c_customer_id LIMIT 100").explain(true);

查询表的内容

sql("select * from 表名");

查询表的具体信息

describe extended 表名;

Hive命令

Hive首次启动,需要进行初始化,命令如下

schematool -dbType mysql -initSchema

启动Hive

$HIVE_HOME/bin/hive --service metastore &

查看Hive中所有数据库的名字

show databases;

删除Hive中的数据库

drop database 数据库名 cascade;

分析表的大小,行数以及具体信息

analyze table 表名 compute statistics;

查询表的所有内容

select * from 表名;

查询表的行数

select count(*) from 表名;

查看表的所有字段以及字段的所有类型

desc 表名;

查看表的详细信息

desc formatted 表名;

查看表的分区信息(如果不是分区表,会报错 Table call_center is not a partitioned table)

HDFS命令

启动hdfs

start-dfs.sh

hdfs上传文件

hdfs dfs -put 本地目录 hdfs目录 

hdfs创建文件/文件夹

hdfs dfs -mkdir -p hdfs文件夹(文件)

hdfs删除文件/文件夹

hdfs dfs -rm -r hdfs文件夹(文件)

hdfs查看文件夹下的所有文件大小之和

hdfs dfs -count hdfs://w3:9000/BenchmarkData/Tpcds/tpcds_1000/tpcds_parquet/customer

或者

hdfs dfs -count /BenchmarkData/Tpcds/tpcds_1000/tpcds_parquet/customer

hdfs查看文件夹下的所有文件大小

hdfs dfs -du /BenchmarkData/Tpcds/tpcds_1000/tpcds_parquet/store_sales

namenode格式化命令(一般用于hadoop集群初始化)

hdfs namenode -format

hadoop打开安全模式

hdfs dfsadmin -safemode enter

hadoop关闭安全模式

hdfs dfsadmin -safemode leave

YARN命令

启动yarn

start-yarn.sh

查看nodemanager的所有结点运行状态以及健康状态

 yarn node -list -all

查看yarn当前application的信息

yarn application -list

Zookeeper命令

启动Zookeeper

bash $ZOOKEEPER_HOME/bin/zkServer.sh start 

查看Zookeeper每个节点的状态

bash $ZOOKEEPER_HOME/bin/zkServer.sh status

关闭Zookeeper所有节点

bash bin/zkServer.sh stop

重启Zookeeper所有节点

bash bin/zkServer.sh restart 

kafka命令

前台启动Kafka

bash $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties

查看Kafka当前的所有topic

bash $KAFKA_HOME/bin/kafka-topics.sh --zookeeper localhost:2181 --list

Kafka删除名字为test的topic

bash $KAFKA_HOME/bin/kafka-topics.sh --delete --zookeeper localhost:2181 --topic test

Kafka创建名字为test的topic

bash $KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper master:2181 --replication-factor 1 --partitions 1 --topic test

Hibench命令

编译Flinkbench命令:

mvn -Pflinkbench -Dspark=2.4 -Dscala=2.11 clean package

编译Sparkbench命令:

mvn -Psparkbench -Dspark=2.4 -Dscala=2.11 clean package

运行Flink程序

#产生数据集
bin/workloads/streaming/identity/prepare/genSeedDataset.sh

#流数据源源不断地发送给Kafka
bin/workloads/streaming/identity/prepare/dataGen.sh

#Flink运行应用程序
bin/workloads/streaming/identity/flink/run.sh

#等待一定的时间间隔之后(如10min),运行收集程序性能的脚本
bin/workloads/streaming/identity/common/metrics_reader.sh

运行Spark程序

#HDFS上产生数据集
bin/workloads/micro/wordcount/prepare/prepare.sh

#Spark运行应用程序wordcount
bin/workloads/micro/wordcount/spark/run.sh

MySQL命令

ubuntu一键安装mysql服务端命令

sudo apt install mysql-server

指定用户登录(名字为user),之后输入密码

mysql -u user -p

查询所有mysql中的所有用户信息(第一行为mysql旧版本命令,第二行为mysql新版本的命令)

select host, user, password from mysql.user;
select host, user, authentication_string from mysql.user;

查询root用户权限

show grants for "root"@"localhost";

添加授权用户

create user "用户名"@"IP地址" identified by "密码";

比如,创建用户名为hive,密码也为hive的用户

create user "hive"@"%" identified by "hive";

分配用户权限
格式为:

grant 权限类型 on 数据库名.表名 to '用户名'@'ip地址' identified by '用户密码' with grant option;

示例:
给hive用户授予访问所有数据库所有表的权限(常用)

grant all privileges on *.* to 'hive'@'%' identified by 'hive';

刷新权限(授予权限或者更改权限之后需要进行此操作)

flush privileges;

查看mysql的运行状态(两种方法都可)

service mysql status
ps -ef | grep mysqld

查看mysql版本信息:

mysql -V

或者在mysql命令行使用

select version();

更改mysql的核心配置文件:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

3.Linux常用命令

Git命令

git新建分支(比如名字为yellow),此时会自动切换到yellow分支

git checkout -b yellow

git pull设置upstream,设置git pull拉取的源头:

git branch --set-upstream-to=origin yellow

git push设置upstream,设置git push推送的源头:

git push --set-upstream origin yellow

conda命令

查看可用虚拟环境

conda env list
conda info -e
conda info --envs

第一次使用conda,需要进行环境的激活

source activate

创建一个虚拟环境(python版本为3.7,可以自己指定)

conda create -n env_name python=3.7

conda变更base环境的版本

conda install python=3.5

激活虚拟环境

conda activate env_name

注意,老版本的激活命令为

Linux:  source activate your_env_name
Windows: activate your_env_name

退出虚拟环境

conda deactivate

查看虚拟机环境的Python版本

python --version

删除某一个虚拟环境以及下面的所有安装包

conda remove --name env_name --all

conda导出当前环境,会生成一个yaml文件

conda env export > env.yaml

conda导出某一个环境

conda env export --name myenv > myenv.yml

yaml文件复制到新机器,进行导入操作

conda env create -f env.yaml

conda查看安装的所有包的信息

conda list

conda安装包

conda install package_name

conda安装包指定版本

conda install numpy=0.20.3

conda卸载包

conda uninstall package_name

pip命令

安装依赖包指定国内镜像

 pip3 install -i  http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com 包名

pip升级

pip3 install --upgrade pip

pip导出当前所有库

pip3 freeze > env.txt

pip安装库中的所有信息

pip3 install -r env.txt

查看Linux系统的详细信息

lsb_release -a

查看Linux系统架构(X86还是ARM,两种方法都可)

uname -a
arch

端口号命令

查看某个端口号被哪个进程占用

sudo netstat -nap | grep 端口号
ps -ef | grep 端口号

查看监听的端口号

sudo netstat -tpnl

Linux建立/删除/切换用户命令

删除用户

sudo userdel -r 用户名

切换用户(su为switch user的意思)

sudo su 用户名

添加用户

sudo useradd -m 用户名
sudo passwd 用户名(然后为其设置密码)

给新用户可以执行sudo的权限

#编辑文件
sudo vim /etc/sudoers
#找到对应的权限标识
#User privilege specification
root    ALL=(ALL:ALL) ALL
#在下面添加以下内容,并保存
新用户名   ALL=(ALL:ALL) ALL

Vim命令

强制保存只读文件

esc执行: :w !sudo tee %

Chmod命令

给整个目录(以及子目录)所有权限

sudo chmod -R 777 目录名

Nohup命令

nohup后台挂起格式如下

nohup 挂起的运行的命令 > output.log 2>&1 &

nohup实际执行命令如下:

nohup bash test.sh > output.log 2>&1 &

df,du查看命令

df检查磁盘空间占用情况(并不能查看某个目录占用的磁盘大小);du用于显示文件或目录所占的磁盘空间。

查看磁盘文件系统每个挂载点的分区大小

df -h

查看目录下文件大小(比如查看kafka-logs目录下所有文件之和的总大小)

du -h --max-depth=1 /tmp/kafka-logs

Zip与Unzip命令

压缩Metrics目录下的所有文件,并将压缩包命名命名为Compress

zip -q -r Compress.zip Metrics/

输出重定向命令

不论是python文件,还是shell脚本,可以将打印在console的内容定向到文件中
覆盖输出重定向:

python3 analyzePhysicalPlan.py >plan.txt

追加输出重定向

python3 analyzePhysicalPlan.py >>plan.txt

两者均把脚本执行内容,输出到plan.txt文件中,区别是第二个追加,每次会对文件追加写,而第一项则是会覆盖原有的内容

命令的pipeLine执行

形式为cmd1 && cmd2,&&表示"与",一条命令执行出错,则后面命令不执行,
第一条命令执行结束后,下一条命令开始执行。比如

python3 analyzePhysicalPlan.py >>plan.txt && awk '{print $1,$2,$3,$4}' plan.txt

前一条命令为追加内容到文本文件,后命令为awk切割内容。
或者使用|命令,在前一条命令的基础上,使用后面的命令处理前一条命令输出的内容
比如:
查看端口号50070是否被占用

ps -ef | grep 50070

ls -ll查看当前所有隐藏文件夹,显示执行权限,所属用户,创建日期等信息,后面使用awk配合进行处理,表示只打印第一列(即打印所有文件的执行权限信息)

ls -ll | awk '{print $1}'

AWK命令

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

空格进行切割并打印,空格切割test.txt,输出每一行的第一个单词跟第四个单词(如不存在,则不输出)

awk '{print $1,$4}' test.txt

awk过滤第一行,有些时候第一行是不需要的列名,需要进行过滤:

awk 'NR!=1{print $1,$4}' test.txt

清除缓存

缓存保存到硬盘,并清除,搞完之后使用free -m查看

sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

查看逻辑CPU的个数

cat /proc/cpuinfo| grep "processor"| wc -l

你可能感兴趣的:(Linux,BigData,大数据)