一文在手,全部都有 : 大資料命令全集2.0升級版
前言
上一版大資料命令發表將近快一年了,發表完到現在的時間,一直在收集和補充中,現 2.0版本分享給大家,方便在學習與開發過程中使。
Linux
1. vi/vim
一般模式
語法 | 功能描述 |
---|---|
yy | 複製游標當前一行 |
y數字y | 複製一段(從第幾行到第幾行) |
p | 箭頭移動到目的行貼上 |
u | 撤銷上一步 |
dd | 刪除游標當前行 |
d數字d | 刪除游標(含)後多少行 |
x | 刪除一個字母,相當於del |
X | 刪除一個字母,相當於Backspace |
yw | 複製一個詞 |
dw | 刪除一個詞 |
shift+^ | 移動到行頭 |
shift+$ | 移動到行尾 |
1+shift+g | 移動到頁頭,數字 |
shift+g | 移動到頁尾 |
數字N+shift+g | 移動到目標行 |
編輯模式
按鍵 | 功能 |
---|---|
i | 當前游標前 |
a | 當前游標後 |
o | 當前游標行的下一行 |
I | 游標所在行最前 |
A | 游標所在行最後 |
O | 當前游標行的上一行 |
指令模式
命令 | 功能 |
---|---|
:w | 儲存 |
:q | 退出 |
:! | 強制執行 |
/要查詢的詞 | n 查詢下一個,N 往上查詢 |
? 要查詢的詞 | n是查詢上一個,shift+n是往下查詢 |
:set nu | 顯示行號 |
:set nonu | 關閉行號 |
2. RPM
RPM查詢命令:rpm -qa |grep firefox
RPM解除安裝命令:
rpm -e xxxxxx
rpm -e --nodeps xxxxxx(不檢查依賴)
RPM安裝命令:
rpm -ivh xxxxxx.rpm
rpm -ivh --nodeps fxxxxxx.rpm(--nodeps,不檢測依賴進度)
選項 | 功能 |
---|---|
-i | -i=install,安裝 |
-v | -v=verbose,顯示詳細資訊 |
-h | -h=hash,進度條 |
--nodeps | --nodeps,不檢測依賴進度 |
3. 登入與登出
命令 | 描述 |
---|---|
sudo useradd lilei | 新增使用者 (不能被立即使用,需設定密碼 sudo passwd lilei) |
sudo adduser lilei | 新增使用者 |
login | 登入或切換使用者 |
logout | 登出使用者(命令列) exit(shell-退出控制檯) |
shutdown -h 10 | 10分鐘後自動關機 shutdown -c //取消 |
halt(root使用者) | 關閉所有程式後自動關機 |
poweroff | 同上 |
shutdown -r 10 | 十分鐘後自動重啟 |
init 6 | 重啟 (0-停機,1-單使用者,2-多使用者,3-完全多使用者,4-圖形化,5-安全模式,6-重啟) |
reboot | 重啟 |
4. 目錄與檔案
命令 | 描述 |
---|---|
cat > myfile | 建立檔案並編輯內容(ctrl+D結束編輯) |
cat -n myfile | 檢視檔案 |
chmod [u/g/o/a][+/-/=][r/w/x] myfile | 更改檔案許可權 u-user,g-group,o-others,a-all . +-新增,--刪除,=-重置 .r-read讀(4),w-write寫(2),x-execute執行(1) |
more myfile | 分頁往後顯示檔案(Space空格) |
less myfile | 分頁自由顯示檔案(Page Down / Page Up) |
head (-10) myfile | 指定顯示檔案前若干行(預設前10) |
tail (-10) myfile | 指定顯示檔案後若干行(預設後10) |
5. 檔案內容處理
命令 | 描述 |
---|---|
sort myfile | 對檔案內容進行排序 |
sort -r myfile | 逆序 |
uniq myfile | 檢查檔案中的重複內容 |
grep (-c)‘a’ myfile | 在檔案中查詢指定內容 (顯示行號) |
diff myfile01 myfile02 | 對不同檔案進行比較 |
diff3 myfile01 myfile02 myfile03 | 三個檔案 |
sdiff myfile01 myfile02 | 合併 |
cmp myfile01 myfile02 | 透過位元組對不同檔案進行比較 |
omm myfile01 myfile02 | 對有序檔案進行比較 |
cut -b(-c)(-d) 2(3) myfile | 對檔案內容進行剪下 |
paste myfile02 myfile01 | 對檔案內容進行貼上 02-)01 |
wc (-引數) myfile | 對檔案內容進行統計 (c-字元數,w-單詞數,l-行數) |
6. 檔案搜尋
命令 | 描述 |
---|---|
find / -name file1 | 從 '/' 開始進入根檔案系統搜尋檔案和目錄 |
find / -user user1 | 搜尋屬於使用者 'user1' 的檔案和目錄 |
find /home/user1 -name *.bin | 在目錄 '/ home/user1' 中搜尋帶有'.bin' 結尾的檔案 |
find /usr/bin -type f -atime +100 | 搜尋在過去100天內未被使用過的執行檔案 |
find /usr/bin -type f -mtime -10 | 搜尋在10天內被建立或者修改過的檔案 |
find / -name *.rpm -exec chmod 755 '{}' | 搜尋以 '.rpm' 結尾的檔案並定義其許可權 ^ |
find /tmp -name *.hprof -exec rm -f {} | 批次刪除java堆疊.hprof檔案 |
find / -xdev -name *.rpm | 搜尋以 '.rpm' 結尾的檔案,忽略光碟機、捷盤等可移動裝置 |
locate *.ps | 尋找以 '.ps' 結尾的檔案 - 先執行 'updatedb' 命令 |
whereis halt | 顯示一個二進位制檔案、原始碼或man的位置 |
which halt | 顯示一個二進位制檔案或可執行檔案的完整路徑 |
grep -rn "query_string" * | Linux目錄下全域性查詢所有檔案中是否包含指定字串(-r:遞迴;-n:顯示行號) |
7. 壓縮
命令 | 描述 |
---|---|
zip myfile.zip myfile | 壓縮 |
zip -d myfile.zip myfile | 新增 |
zip -m myfile.zip myfile | 刪除 |
unzip -o myfile.zip | 解壓(覆蓋) |
unzip -n myfile.zip | 解壓(不覆蓋) |
zipinfo myfile.zip | 列出壓縮檔案資訊 |
8. 磁碟空間
命令 | 描述 |
---|---|
df -h | 顯示已經掛載的分割槽列表 |
ls -lSr |more | 以尺寸大小排列檔案和目錄 |
du -sh dir1 | 估算目錄 'dir1' 已經使用的磁碟空間' |
du -sk * | sort -rn | 以容量大小為依據依次顯示檔案和目錄的大小 |
9. 系統負載
命令 | 描述 |
---|---|
top -d 20 -p 1303 | 將程式號1303的系統負載,每隔20秒重新整理一次 |
top -d 20 -n 3 -b > test.txt | 每隔20秒,一共執行3次, 將統計結果匯入到test.txt檔案中。 |
Shell
輸入/輸出重定向
命令 | 功能說明 |
---|---|
command > file | 將輸出重定向到 file |
command < file | 將輸入重定向到 file |
command >> file | 將輸出以追加的方式重定向到 file |
n > file | 將檔案描述符為 n 的檔案重定向到 file |
n >> file | 將檔案描述符為 n 的檔案以追加的方式重定向到 file |
n >& m | 將輸出檔案 m 和 n 合併 |
n <& m | 將輸入檔案 m 和 n 合併 |
<< tag | 將開始標記 tag 和結束標記 tag 之間的內容作為輸入 |
指令碼編輯
快捷方式 | 功能說明 |
---|---|
shift | 引數左移 |
$@ | 所有的引數 |
$# | 引數的個數 |
Git
基本命令
命令 | 說明 |
---|---|
git init | 初始化倉庫 |
git clone | 複製一份遠端倉庫,也就是下載一個專案 |
git add | 新增檔案到暫存區 |
git status | 檢視倉庫當前的狀態,顯示有變更的檔案 |
git diff | 比較檔案的不同,即暫存區和工作區的差異 |
git commit | 提交暫存區到本地倉庫 |
git reset | 回退版本 |
git rm | 刪除工作區檔案 |
git mv | 移動或重新命名工作區檔案 |
git log | 檢視歷史提交記錄 |
git blame | 以列表形式檢視指定檔案的歷史修改記錄 |
git remote | 遠端倉庫操作 |
git fetch | 從遠端獲取程式碼庫 |
git pull | 下載遠端程式碼併合並 |
git push | 上傳遠端程式碼併合並 |
分支管理命令
命令 | 說明 |
---|---|
git branch | 列出分支 |
git branch (branchname) | 建立分支命令 |
git branch -d (branchname) | 刪除分支 |
git checkout (branchname) | 切換分支 |
git merge | 合併分支 |
Hadoop
啟動類命令
功能說明 | 命令指令碼 |
---|---|
啟動hdfs叢集 | sbin/start-dfs.sh |
啟動yarn | sbin/start-yarn.sh |
hadoop fs/hdfs dfs 命令
功能說明 | 命令 |
---|---|
建立目錄 | hdfs dfs -mkdir -p /data/flink |
顯示目錄 | hdfs dfs -ls / |
從HDFS複製到本地 | hdfs dfs -copyToLocal /data/data.txt ./ |
檔案上傳到叢集(從本地) | hhdfs dfs -copyFromLocal data.txt / |
檔案下載 | hdfs dfs -get /data/flink |
刪除叢集的檔案 | hdfs dfs -rm /data/flink |
刪除資料夾 | hdfs dfs -rm -r -skipTrash /data |
從本地剪下貼上到HDFS | hdfs dfs -moveFromLocal data.txt /data/ |
追加一個檔案到已經存在的檔案末尾hdfs dfs -appendToFile data1.txt /data/data.txt | |
顯示檔案內容 | hdfs dfs -cat data.txt |
修改檔案所屬許可權 | hdfs dfs -chmod 777 xxx.sh |
修改檔案所屬使用者組 | hdfs dfs -chown root:root data.txt |
從HDFS的一個路徑複製到HDFS的另一個路徑 | hdfs dfs -cp data.txt /data1.txt |
在HDFS目錄中移動檔案 | hdfs dfs -mv data.txt /opt/ |
合併下載多個檔案 | hdfs dfs -getmerge /data/* ./data_merge.txt |
hadoop fs -put | 等同於copyFromLocal |
顯示一個檔案的末尾 | hdfs dfs -tail data.txt |
刪除檔案或資料夾 | hdfs dfs -rm /data/data.txt |
刪除空目錄 | hdfs dfs -rmdir /data |
統計資料夾的大小資訊 | hdfs dfs -s -h /data |
統計資料夾下的檔案大小資訊 | hdfs dfs -h /data |
設定HDFS中檔案的副本數量 | hdfs dfs -setrep 3 /data/data.txt |
yarn命令
功能說明 | 命令 |
---|---|
檢視正在執行的yarn任務列表 | yarn application -list appID |
kill掉指定id的yarn任務 | yarn application -kill appID |
檢視任務日誌資訊 | yarn logs -applicationId appID |
Zookeeper
啟動命令
功能說明 | 命令指令碼 |
---|---|
啟動zookeeper服務 | zkServer.sh start |
檢視zookeeper狀態 | zkServer.sh status |
停止zookeeper服務 | zkServer.sh stop |
啟動zookeeper客戶端 | zkCli.sh -server 127.0.0.1:2181 |
退出zookeeper客戶端 | quit |
基本操作
功能說明 | 命令指令碼 |
---|---|
當前znode中所包含的內容 | ls / |
建立普通節點(前面是節點的路徑,後面是值) | create /bigdata/flink "flink" |
獲取節點的值 | get /bigdata |
修改節點的值 | set /bigdata/flink "flinksql" |
刪除節點 | delete /bigdata/flink |
遞迴刪除節點 | rmr /bigdata |
四字母命令
命令 | 功能說明 | 例子 |
---|---|---|
conf | zk服務配置的詳細資訊 | echo conf | nc 127.0.0.1 2181 |
stat | 客戶端與zk連線的簡要資訊 | 參考上面 |
srvr | zk服務的詳細資訊 | 參考上面 |
cons | 客戶端與zk連線的詳細資訊 | 參考上面 |
mntr | zk服務目前的效能狀況 | 參考上面 |
crst | 重置當前的所有連線、會話 | 參考上面 |
dump | 列出未經處理的會話和連線資訊 | 參考上面 |
envi | 列出zk的版本資訊、主機名稱、Java版本、伺服器名稱等等 | 參考上面 |
ruok | 測試伺服器是否正在執行,如果在執行返回imok,否則返回空 | 參考上面 |
srst | 重置Zookeeper的所有統計資訊 | 參考上面 |
wchs | 列出watch的總數,連線數 | 參考上面 |
wchp | 列出所有watch的路徑及sessionID | 參考上面 |
mntr | 列出叢集的關鍵效能資料,包括zk的版本、node數量、臨時節點數等等 | 參考上面 |
Kafka
注: 這裡機器我只寫一個。命令你們也可使用 ./bin/xx.sh (如:./bin/kafka-topics.sh)
檢視當前伺服器中的所有topic
kafka-topics --zookeeper xxxxxx:2181 --list --exclude-internal
說明:
exclude-internal:排除kafka內部topic
比如: --exclude-internal --topic "test_.*"
建立topic
kafka-topics --zookeeper xxxxxx:2181 --create
--replication-factor
--partitions 1
--topic topic_name
說明:
--topic 定義topic名
--replication-factor 定義副本數
--partitions 定義分割槽數
刪除topic
注意: 需要server.properties中設定delete.topic.enable=true否則只是標記刪除
kafka-topics --zookeeper xxxxxx:2181 --delete --topic topic_name
生產者
kafka-console-producer --broker-list xxxxxx:9092 --topic topic_name
可加:--property parse.key=true(有key訊息)
消費者
kafka-console-consumer --bootstrap-server xxxxxx:9092 --topic topic_name
注:可選
--from-beginning:會把主題中以往所有的資料都讀取出來
--whitelist '.*' :消費所有的topic
--property print.key=true:顯示key進行消費
--partition 0:指定分割槽消費
--offset:指定起始偏移量消費
檢視某個Topic的詳情
kafka-topics --zookeeper xxxxxx:2181 --describe --topic topic_name
修改分割槽數
kafka-topics --zookeeper xxxxxx:2181 --alter --topic topic_name --partitions 6
檢視某個消費者組資訊
kafka-consumer-groups --bootstrap-server xxxxxx:9092 --describe --group group_name
刪除消費者組
kafka-consumer-groups --bootstrap-server xxxxxx:9092 ---delete --group group_name
重置offset
kafka-consumer-groups --bootstrap-server xxxxxx:9092 --group group_name
--reset-offsets --all-topics --to-latest --execute
leader重新選舉
指定Topic指定分割槽用重新PREFERRED:優先副本策略 進行Leader重選舉
kafka-leader-election --bootstrap-server xxxxxx:9092
--topic topic_name --election-type PREFERRED --partition 0
所有Topic所有分割槽用重新PREFERRED:優先副本策略 進行Leader重選舉
kafka-leader-election --bootstrap-server xxxxxx:9092
--election-type preferred --all-topic-partitions
查詢kafka版本資訊
kafka-configs --bootstrap-server xxxxxx:9092 --describe --version
增刪改配置
功能說明 | 引數 |
---|---|
選擇型別 | --entity-type (topics/clients/users/brokers/broker- loggers) |
型別名稱 | --entity-name |
刪除配置 | --delete-config k1=v1,k2=v2 |
新增/修改配置 | --add-config k1,k2 |
topic新增/修改動態配置
kafka-configs --bootstrap-server xxxxxx:9092
--alter --entity-type topics --entity-name topic_name
--add-config file.delete.delay.ms=222222,retention.ms=999999
topic刪除動態配置
kafka-configs --bootstrap-server xxxxxx:9092
--alter --entity-type topics --entity-name topic_name
--delete-config file.delete.delay.ms,retention.ms
持續批次拉取訊息
單次最大消費10條訊息(不加引數意為持續消費)
kafka-verifiable-consumer --bootstrap-server xxxxxx:9092
--group group_name
--topic topic_name --max-messages 10
刪除指定分割槽的訊息
刪除指定topic的某個分割槽的訊息刪除至offset為1024
json檔案offset-json-file.json
{
"partitions": [
{
"topic": "topic_name",
"partition": 0,
"offset": 1024
}
],
"version": 1
}
kafka-delete-records --bootstrap-server xxxxxx:9092
--offset-json-file offset-json-file.json
檢視Broker磁碟資訊
查詢指定topic磁碟資訊
kafka-log-dirs --bootstrap-server xxxxxx:9090
--describe --topic-list topic1,topic2
查詢指定Broker磁碟資訊
kafka-log-dirs --bootstrap-server xxxxxx:9090
--describe --topic-list topic1 --broker-list 0
Hive
啟動類
功能說明 | 命令 |
---|---|
啟動hiveserver2服務 | bin/hiveserver2 |
啟動beeline | bin/beeline |
連線hiveserver2 | beeline> !connect jdbc:hive2://hadoop102:10000 |
metastroe服務 | bin/hive --service metastore |
hive 啟動後設資料服務(metastore和hiveserver2)和優雅關閉指令碼
啟動: hive.sh start
關閉: hive.sh stop
重啟: hive.sh restart
狀態: hive.sh status
指令碼如下
#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
mkdir -p $HIVE_LOG_DIR
#檢查程式是否執行正常,引數1為程式名,引數2為程式埠
function check_process()
{
pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')
ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)
echo $pid
[[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1
}
function hive_start()
{
metapid=$(check_process HiveMetastore 9083)
cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"
cmd=$cmd" sleep4; hdfs dfsadmin -safemode wait >/dev/null 2>&1"
[ -z "$metapid" ] && eval $cmd || echo "Metastroe服務已啟動"
server2pid=$(check_process HiveServer2 10000)
cmd="nohup hive --service hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"
[ -z "$server2pid" ] && eval $cmd || echo "HiveServer2服務已啟動"
}
function hive_stop()
{
metapid=$(check_process HiveMetastore 9083)
[ "$metapid" ] && kill $metapid || echo "Metastore服務未啟動"
server2pid=$(check_process HiveServer2 10000)
[ "$server2pid" ] && kill $server2pid || echo "HiveServer2服務未啟動"
}
case $1 in
"start")
hive_start
;;
"stop")
hive_stop
;;
"restart")
hive_stop
sleep 2
hive_start
;;
"status")
check_process HiveMetastore 9083 >/dev/null && echo "Metastore服務執行正常" || echo "Metastore服務執行異常"
check_process HiveServer2 10000 >/dev/null && echo "HiveServer2服務執行正常" || echo "HiveServer2服務執行異常"
;;
*)
echo Invalid Args!
echo 'Usage: '$(basename $0)' start|stop|restart|status'
;;
esac
常用互動命令
功能說明 | 命令 |
---|---|
不進入hive的互動視窗執行sql | bin/hive -e "sql語句" |
執行指令碼中sql語句 | bin/hive -f hive.sql |
退出hive視窗 | exit 或 quit |
命令視窗中檢視hdfs檔案系統 | dfs -ls / |
命令視窗中檢視hdfs檔案系統 | ! ls /data/h |
SQL類(特殊的)
說明 | 語句 |
---|---|
檢視hive中的所有資料庫 | show databases |
用default資料庫 | use default |
查詢表結構 | desc table_name |
檢視資料庫 | show databases |
重新命名錶名 | alter table table1 rename to table2 |
修改表中欄位 | alter table table_name change name user_name String |
修改欄位型別 | alter table table_name change salary salary Double |
建立外部表 | create external table .... |
查詢外部表資訊 | desc formatted outsidetable |
建立檢視 | create view view_name as select * from table_name ..... |
新增資料 | load data local inpath 'xxx' overwrite into table table_name partition(day='2021-12-01') |
內建函式
(1) NVL
給值為NULL的資料賦值,它的格式是NVL( value,default_value)。它的功能是如果value為NULL,則NVL函式返回default_value的值,否則返回value的值,如果兩個引數都為NULL ,則返回NULL
select nvl(column, 0) from xxx;
(2)行轉列
函式 | 描述 |
---|---|
CONCAT(string A/col, string B/col…) | 返回輸入字串連線後的結果,支援任意個輸入字串 |
CONCAT_WS(separator, str1, str2,...) | 第一個引數引數間的分隔符,如果分隔符是 NULL,返回值也將為 NULL。這個函式會跳過分隔符引數後的任何 NULL 和空字串。分隔符將被加到被連線的字串之間。 |
COLLECT_SET(col) | 將某欄位的值進行去重彙總,產生array型別欄位 |
COLLECT_LIST(col) | 函式只接受基本資料型別,它的主要作用是將某欄位的值進行不去重彙總,產生array型別欄位。 |
(3)列轉行(一列轉多行)
Split(str, separator): 將字串按照後面的分隔符切割,轉換成字元array。
EXPLODE(col):將hive一列中複雜的array或者map結構拆分成多行。
LATERAL VIEW
用法:
LATERAL VIEW udtf(expression) tableAlias AS columnAlias
解釋:lateral view用於和split, explode等UDTF一起使用,它能夠將一行資料拆成多行資料,在此基礎上可以對拆分後的資料進行聚合。
lateral view首先為原始表的每行呼叫UDTF,UDTF會把一行拆分成一或者多行,lateral view再把結果組合,產生一個支援別名表的虛擬表。
準備資料來源測試
movie | category |
---|---|
《功勳》 | 記錄,劇情 |
《戰狼2》 | 戰爭,動作,災難 |
SQL
SELECT movie,category_name
FROM movie_info
lateral VIEW
explode(split(category,",")) movie_info_tmp AS category_name ;
測試結果
《功勳》 記錄
《功勳》 劇情
《戰狼2》 戰爭
《戰狼2》 動作
《戰狼2》 災難
視窗函式
(1)OVER()
定分析函式工作的資料視窗大小,這個資料視窗大小可能會隨著行的變而變化。
(2)CURRENT ROW(當前行)
n PRECEDING:往前n行資料
n FOLLOWING:往後n行資料
(3)UNBOUNDED(無邊界)
UNBOUNDED PRECEDING 前無邊界,表示從前面的起點
UNBOUNDED FOLLOWING後無邊界,表示到後面的終點
SQL案例:由起點到當前行的聚合
select
sum(money) over(partition by user_id order by pay_time rows between UNBOUNDED PRECEDING and current row)
from or_order;
SQL案例:當前行和前面一行做聚合
select
sum(money) over(partition by user_id order by pay_time rows between 1 PRECEDING and current row)
from or_order;
SQL案例:當前行和前面一行和後一行做聚合
select
sum(money) over(partition by user_id order by pay_time rows between 1 PRECEDING AND 1 FOLLOWING )
from or_order;
SQL案例:當前行及後面所有行
select
sum(money) over(partition by user_id order by pay_time rows between current row and UNBOUNDED FOLLOWING )
from or_order;
(4)LAG(col,n,default_val)
往前第n行資料,沒有的話default_val
(5)LEAD(col,n, default_val)
往後第n行資料,沒有的話default_val
SQL案例:查詢使用者購買明細以及上次的購買時間和下次購買時間
select
user_id,,pay_time,money,
lag(pay_time,1,'1970-01-01') over(PARTITION by name order by pay_time) prev_time,
lead(pay_time,1,'1970-01-01') over(PARTITION by name order by pay_time) next_time
from or_order;
(6)FIRST_VALUE(col,true/false)
當前視窗下的第一個值,第二個引數為true,跳過空值。
(7)LAST_VALUE (col,true/false)
當前視窗下的最後一個值,第二個引數為true,跳過空值。
SQL案例:查詢使用者每個月第一次的購買時間 和 每個月的最後一次購買時間
select
FIRST_VALUE(pay_time)
over(
partition by user_id,month(pay_time) order by pay_time
rows between UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING
) first_time,
LAST_VALUE(pay_time)
over(partition by user_id,month(pay_time) order by pay_time rows between UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING
) last_time
from or_order;
(8)NTILE(n)
把有序視窗的行分發到指定資料的組中,各個組有編號,編號從1開始,對於每一行,NTILE返回此行所屬的組的編號。(用於將分組資料按照順序切分成n片,返回當前切片值)
SQL案例:查詢前25%時間的訂單資訊
select * from (
select User_id,pay_time,money,
ntile(4) over(order by pay_time) sorted
from or_order
) t
where sorted = 1;
4個By
(1)Order By
全域性排序,只有一個Reducer。
(2)Sort By
分割槽內有序。
(3)Distrbute By
類似MR中Partition,進行分割槽,結合sort by使用。
(4) Cluster By
當Distribute by和Sorts by欄位相同時,可以使用Cluster by方式。Cluster by除了具有Distribute by的功能外還兼具Sort by的功能。但是排序只能是升序排序,不能指定排序規則為ASC或者DESC。
在生產環境中Order By用的比較少,容易導致OOM。
在生產環境中Sort By+ Distrbute By用的多。
排序函式
(1)RANK()
排序相同時會重複,總數不會變
1
1
3
3
5
(2)DENSE_RANK()
排序相同時會重複,總數會減少
1
1
2
2
3
(3)ROW_NUMBER()
會根據順序計算
1
2
3
4
5
正規表示式
符號 | 功能 |
---|---|
/ | 做為轉義,即通常在“/”後面的字元不按原來意義解釋,如/b/匹配字元“b”,當b前面加了反斜槓後//b/,轉義為匹配一個單詞的邊界。-或-對正規表示式功能字元的還原,如““匹配它前面元字元0次或多次,/a/將匹配a,aa,aaa,加了"/"後,/a//將只匹配”a“。 |
^ | 匹配一個輸入或一行的開頭 ,/^a/匹配”an A“,而不匹配”An a“ |
$ | 匹配一個輸入或一行的結尾,/a$/匹配”An a“,而不匹配”an A“ |
* | 匹配前面原字元0次或多次,/ba*/將匹配b,ba,baa |
+ | 匹配前面元字元1次或多次,/ba*/將匹配ba,ba,baaa |
? | 匹配前面元字元0次或1次,/ba?/將匹配b,ba |
(x) | 匹配x儲存x在名為9的變數中 |
{n} | 精確匹配n次 |
{n,} | 匹配n次以上 |
{n,m} | 匹配n-m次 |
[xyz] | 字符集(character set),匹配這個集合中任一一個字元(或元字元) |
[^xyz] | 不匹配這個集合中的任何一個字元 |
[/b] | 匹配一個退格符 |
/b | 匹配一個單詞的邊界 |
/B | 匹配一個單詞的非邊界 |
/d | 匹配一個數字字元,//d/=/[0-9]/ |
/D | 匹配一個非數字字元,//D/=/[^0-9]/ |
/n | 匹配一個換行符 |
/r | 匹配一個換行符 |
/S | 匹配一個空白字元,包括/n,/r,/f,/t,/v等 |
/w | 匹配一個可以組成單詞的字元,包括下劃線,如[/w]匹配”$5.98“中的5,等於[a-zA-Z0-9] |
/W | 匹配一個不可以組成單詞的字元,如[/W]匹配”5.98“中的$,等於[^a-zA-Z0-9] |
select regexp_extract('x=a3&x=18abc&x=2&y=3&x=4','x=([0-9]+)([a-z]+)',2)
得到結果:abc
日期函式
datediff:返回結束日期減去開始日期的天數
datediff(string enddate, string startdate)
select datediff('2021-11-20','2021-11-22')
date_add:返回開始日期startdate增加days天后的日期
date_add(string startdate, int days)
select date_add('2021-11-20',3)
date_sub:返回開始日期startdate減少days天后的日期
date_sub (string startdate, int days)
select date_sub('2021-11-22',3)
trunc 函式的用法
函式/方法 | 返回資料 |
---|---|
trunc(add_months(current_date(),-1),'MM') | 上月1號 |
trunc(current_date(),'MM') | 本月1號 |
trunc(add_months(current_date(),1),'MM') | 下月1號 |
trunc(current_date(),'YYYY') | 今年年初日期 |
時間相關函式處理案例
1. 取得當前日期時間:
--取得當前日期:
select current_date();
輸出:2021-08-14
--取得當前日期時間:
select current_timestamp();
輸出:2021-08-14 13:14:57
--hive取得當前時間戳:
select unix_timestamp();
輸出:1628911641
2. 日期時間轉日期函式,返回日期時間欄位中的日期部分,
-- 說明:字串必須為:yyyy-MM-dd格式。
select to_date('2021-08-14 13:34:12');
輸出:2021-08-14
3. 時間戳到轉時間格式
--說明: 轉化UNIX時間戳(從1970-01-01 00:00:00 UTC到指定時間的秒數)到當前時區的時間格式
select from_unixtime(1323308945,’yyyy-MM-dd’);
輸出:2011-12-08
select from_unixtime(1323308945,’yyyyMMdd’);
輸出:20111208
--取得當前時間,相當於select current_timestamp();
select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:dd:ss');
輸出:2021-08-14 03:14:57
4. 日期、時間戳、字串型別格式化輸出標準時間格式
select date_format(current_timestamp(),'yyyy-MM-dd HH:mm:ss');
輸出:2021-08-14 11:14:46
select date_format(current_date(),'yyyy-MM-dd');
輸出:2021-08-14
select date_format('2021-08-14','yyyy-MM-dd HH:mm:ss');
輸出:2021-08-14 00:00:00
5. 獲取當前時間的unix時間戳和日期轉UNIX時間戳函式
select unix_timestamp();
輸出:1628906623
select unix_timestamp('2021-08-14 10:05:20');
輸出:1628935520
6. utc時間轉換:
select from_utc_timestamp(current_timestamp(),8);
輸出:2021-08-14 11:10:27.762
select to_utc_timestamp(current_timestamp(),8);
輸出:2021-08-14 11:10:56.085
7. 日期轉unix時間戳
select to_unix_timestamp('2021-08-14 11:10:27','yyyy-MM-dd HH:dd:ss');
輸出:1628593227
8. 返回日期中的年/季度/月/日
select year('2021-08-14 10:05:20');
輸出:2021
select quarter('2021-08-14 10:05:20');
輸出:3
select month('2021-08-14 10:05:20');
輸出:8
select day('2021-08-14 10:05:20');
輸出:14
9. 返回日期中的時/分/秒
select hour('2021-08-14 10:05:20');
輸出:10
select minute('2021-08-14 10:05:20');
輸出:5
select second('2021-08-14 10:05:20');
輸出:20
10. 返回日期在當年的第幾周
select weekofyear('2021-08-14 10:05:20');
輸出:32
11. 返回日期在當前周的第幾天(注:週日為第1天)
select dayofweek('2021-08-14 10:05:20'); --週六
輸出:7
12. 日期比較函式,返回開始日期減去結束日期的天數
說明:前者大於後者,返回值為正,否則,返回值為負。
select datediff('2021-08-14','2021-08-08');
輸出:6
select datediff(current_date(),date_add(current_date(),-10));
輸出:10
select datediff(current_date(),date_add(current_date(),10));
輸出:-10
13. 日期減少函式,返回日期前n天的日期
select date_sub('2021-08-14',6);
輸出:2021-08-08
14. 日期增加函式,返回日期後n天的日期
select date_add('2021-08-14',6);
輸出:2021-08-20
--取得昨天日期:
select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
-- 取得明天日期:
select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
15. 返回兩個日期之間包含的月數(結果為double型別)
select months_between('2021-10-14','2021-05-04');
輸出:5.32258065
16. 獲取日期月初(引數MM),年初日期(引數YY)
select trunc(current_date(),'MM');
輸出:2021-08-01
select trunc(current_date(),'YY');
輸出:2021-01-01
17. 獲取日期當月最後一天
select last_day(current_date());
輸出:2021-08-31
18. 返回當前日期之後的下個星期幾的日期
說明:引數為MO,TU,WE,TH,FR,SA,SU,也可以是兩個縮寫字母可以是三個可以是全名。
select next_day('2021-08-14', 'TU'); --得到021-08-14後的下個週二
輸出:2021-08-17
select next_date('2020-01-01','Fri'); --得到2020-01-01後的下個週五
輸出:2020-01-03
19. yyyymmdd和yyyy-mm-dd日期間切換
思路:先轉換成時間戳,再由時間戳轉換為對應格式。
select from_unixtime(unix_timestamp('20210814','yyyymmdd'),'yyyy-mm-dd');
輸出:2021-08-14
select from_unixtime(unix_timestamp('2021-08-14','yyyy-mm-dd'),'yyyymmdd') ;
輸出:20210814
20. 取最近30天資料
seelct * from table where datediff(current_timestamp(),create_time)<=30;
--要從表中執行
21. 兩個日期相差多少小時
select (unix_timestamp('2021-08-14 10:18:54')-unix_timestamp('2021-08-14 08:18:54'))/3600;
輸出:2.0
22. 兩個日期相差多少分鐘
select (unix_timestamp('2021-08-14 10:18:54')-unix_timestamp('2021-08-14 08:18:54'))/60
輸出:120.0
23. 返回上個月第一天和最後一天
--上個月第一天
select trunc(add_months(current_timestamp(),-1),'MM');
select concat(substr(add_months(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1),1,7),'-01');
select trunc(add_months(current_timestamp(),-1),'MM');
輸出:2021-07-01
--上個月最後一天
select last_day(add_months(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1)) ;
select date_sub(trunc(current_timestamp(),'MM'),1);
輸出:2021-07-31
-- 獲取當月第一天
select trunc(current_timestamp(),'MM');
select from_unixtime(unix_timestamp(),'yyyy-MM-01');
輸出:2021-08-01
-- 獲取當月最後一天
select last_day(current_timestamp());
select last_day(current_date());
輸出:2021-08-31
Impala(時間處理,可類比到hive可用)
1. 獲取當前時間
timestamp 樣式2021-12-10 04:36:48.147046000
bigint 樣式 1639110956
函式/方法 | 輸出型別 | 說明/樣式 |
---|---|---|
current_timestamp() | timestamp | 所在時區的當前時間 |
now() | timestamp | 所在時區的當前時間 |
unix_timestamp() | bigint | 所在時區的當前時間戳 |
utc_timestamp | timestamp | UTC時區的當前時間 |
timeofday() | string | Fri Dec 10 12:39:46 2021 CST |
2. 獲取時間指定單位函式
序號 | 函式/方法 | 輸出型別 | 說明/樣式 |
---|---|---|---|
1 | year(timestamp/date) | int | 獲取年 yyyy |
2 | quarter(timestamp/date) | int | 獲取季度(1,2,3,4) |
3 | month(timestamp/date) | int | 獲取月 |
4 | monthname(timestamp/date) | string | 獲取月份名稱 December |
5 | week(timestamp/date) | int | 獲取周(1-53) |
6 | weekofyear(timestamp/date) | int | 獲取周(1-53) |
7 | dayofweek(timestamp/date) | int | 獲取天(本週第多少天,週日算第一天) |
8 | dayname(timestamp/date) | string | 獲取天(星期幾)Friday |
9 | next_day(timestamp/date, 10 | day(string)) | timestamp/date |
11 | day(timestamp/date) | int | 獲取天(本月第多少天) |
12 | dayofmonth(timestamp/date) | int | 獲取天(本月第多少天) |
13 | last_day(timestamp/date) | timestamp/date | 獲取天(本月的最後一天日期) |
14 | dayofyear(timestamp/date) | int | 獲取天(本年第多少天) |
15 | hour(timestamp/date) | int | 獲取小時 |
16 | minute(timestamp date) | int | 獲取分鐘 |
17 | second(timestamp date) | int | 獲取秒 |
18 | millisecond(timestamp date) | int | 獲取毫秒 |
19 | extract (YEAR FROM timestamp) | bigint | 獲取引數指定的時間單位 YEAR MONTH DAY HOUR MINUTE SECOND |
20 | date_part('year',timestamp) | bigint | 獲取引數指定的時間單位 YEAR MONTH DAY HOUR MINUTE SECOND |
21 | trunc(timestamp/date,unit) | timestamp/date | 獲取截斷為指定單位的時間 |
unit | 擷取說明 |
---|---|
SYYYY,YYYY,YEAR,SYEAR,YYY,YY,Y | 年 |
Q | 季節 |
MONTH,MON,MM,RM | 月 |
WW | 最近的日期是與一年中的第一天相同的日期 |
W | 最近的日期是與該月的第一天相同的星期幾 |
DDD,DD,J | 天 |
DAY,DY,D | 星期幾(星期一)的開始 |
HH,HH12,HH24 | 小時 |
MI | 分鐘 |
3. 時間比較函式
序號 | 函式/方法 | 輸出型別 | 說明/樣式 |
---|---|---|---|
1 | datediff(timestamp enddate,startdate) | int | 返回endDate比startDate多多少天 |
2 | int_months_between(timestamp t1,t2) | int | 返回兩個日期相差的整數月份個數 |
3 | months_between(timestamp t1,t2) | double | 返回浮點數的月數相差的數 |
4 | date_cmp(DATE date1, DATE date2) | int | 比較是否相等,返回-1,0,1,null四種數值 |
5 | timestamp_cmp(timestamp t1,timestamp t2) | int | 比較是否相等,返回-1,0,1,null四種數值 |
4. 時間格式轉換函式
序號 | 函式/方法 | 輸出型別 | 說明/樣式 |
---|---|---|---|
1 | to_date(timestamp date) | string | 返回時間戳對應的date |
2 | to_timestamp(bigint unixtime) | timestamp | 返回整數對應的timestamp值 |
3 | to_timestamp(string date,string pattern) | timestamp | 返回字串對應的timestamp值 |
4 | to_utc_timestamp(timestamp t,string timezone) | timestamp | 指定時區的時間戳轉化為UTC時區的時間戳 |
5 | from_timestamp(timestamp t,string pattern) | string | 把timestamp按照pattern進行格式化 |
6 | from_timestamp(string date,string pattern) | string | 把date按照pattern進行格式化 |
7 | from_unixtime(bigint unixtime) | string | 把時間戳秒數轉化為本地地區中的字串 |
8 | from_unixtime(bigint unixtime,string pattern) | string | 時間戳轉化為本地時區字串,pattern格式 |
9 | from_utc_timestamp(timestamp t,string timezone) | timestamp | UTC時區指定時間戳轉化為指定時區時間戳 |
10 | unix_timestamp(string datetime) | bigint | 把string型別的date或日期轉化成時間戳Unix |
11 | unix_timestamp(timestamp datetime) | bigint | 把string型別的timestamp轉化成時間戳Unix |
12 | unix_timestamp(string datetime,string pattern) | bigint | 日期按pattern轉化成時間戳Unix |
5. 時間計算函式
序號 | 函式/方法 | 輸出型別 | 說明/樣式 |
---|---|---|---|
1 | years_add(timestamp/date date, int/bigint years) | timestamp/date | 增加指定年數 |
2 | years_sub(timestamp/date date, int/bigint years) | timestamp/date | 減少指定年數 |
3 | months_add(timestamp/date date, int/bigint months) | timestamp/date | 增加指定月數 |
4 | months_sub(timestamp/date date, int/bigint months) | timestamp/date | 減少指定月數 |
5 | add_months(timestamp/date date, int/bigint months) | timestamp/date | 增加指定月數 |
6 | weeks_add(timestamp/date date, int/bigint weeks) | timestamp/date | 增加指定週數 |
7 | weeks_sub(timestamp/date date, int/bigint weeks) | timestamp/date | 減少指定週數 |
8 | days_add(timestamp/date startdate, int/bigint days) | timestamp/date | 增加指定天數 |
9 | days_sub(timestamp/date startdate, int/bigint days) | timestamp/date | 減少指定天數 |
10 | date_add(timestamp/date startdate, int/bigint days) | timestamp/date | 增加指定天數 |
11 | date_sub(timestamp/date startdate, int/bigint days) | timestamp/date | 減少指定天數 |
12 | adddate(timestamp/date startdate, int/int days) | timestamp/date | 增加指定天數 |
13 | subdate(timestamp/date startdate,bigint/int days) | timestamp/date | 減少指定天數 |
14 | hours_add(timestamp date, int/bigint hours) | timestamp | 增加指定小時 |
15 | hours_sub(timestamp date, int/bigint hours) | timestamp | 減少指定小時 |
16 | minutes_add(timestamp date, int/bigint minutes) | timestamp | 增加指定分鐘 |
17 | minutes_sub(timestamp date, int/bigint minutes) | timestamp | 減少指定分鐘 |
18 | seconds_add(timestamp date, int/bigint seconds) | timestamp | 增加指定秒數 |
19 | seconds_sub(timestamp date, int/bigint seconds) | timestamp | 減少指定秒數 |
20 | milliseconds_add(timestamp t, int/bigint s) | timestamp | 增加指定毫秒數 |
21 | milliseconds_sub(timestamp t, int/bigint s) | timestamp | 減少指定毫秒數 |
22 | microseconds_add(timestamp t, int/bigint s) | timestamp | 增加指定微秒數 |
23 | microseconds_sub(timestamp t, int/bigint s) | timestamp | 減少指定微秒數 |
24 | nanoseconds_add(timestamp t, int/bigint s) | timestamp | 增加指定納秒數 |
25 | nanoseconds_sub(timestamp t, int/bigint s) | timestamp | 減少指定納秒數 |
26 | date_add(timestamp/date startdate, interval_expression) | timestamp/date | 使用引數計算日期增量值(增加) |
27 | date_sub(timestamp/date startdate, interval_expression) | timestamp/date | 使用引數計算日期增量值(減少) |
Redis
啟動類
key
命令 | 功能說明 |
---|---|
keys * | 檢視當前庫的所有鍵 |
exists | 判斷某個鍵是否存在 |
type | 檢視鍵的型別 |
del | 刪除某個鍵 |
expire | 為鍵值設定過期時間,單位秒 |
ttl | 檢視還有多久過期,-1表示永不過期,-2表示已過期 |
dbsize | 檢視當前資料庫中key的數量 |
flushdb | 清空當前庫 |
Flushall | 通殺全部庫 |
String
命令 | 功能說明 |
---|---|
get | 查詢對應鍵值 |
set | 新增鍵值對 |
append | 將給定的追加到原值的末尾 |
strlen | 獲取值的長度 |
setnx | 只有在key 不存在時設定key的值 |
incr | 將key中儲存的數字值增1只能對數字值操作,如果為空,新增值為1 |
decr | 將key中儲存的數字值減1只能對數字之操作,如果為空,新增值為-1 |
incrby /decrby 步長 | 將key中儲存的數字值增減,自定義步長 |
mset | 同時設定一個或多個key-value對 |
mget | 同時獲取一個或多個value |
msetnx | 同時設定一個或多個key-value對,當且僅當所有給定的key都不存在 |
getrange <起始位置> <結束位置> | 獲得值的範圍,類似java中的substring |
setrange <起始位置> | 用覆蓋所儲存的字串值,從<起始位置>開始 |
setex <過期時間> | 設定鍵值的同時,設定過去時間,單位秒 |
getset | 以新換舊,設定了新值的同時獲取舊值 |
List
命令 | 功能說明 |
---|---|
lpush/rpush | 從左邊/右邊插入一個或多個值。 |
lpop/rpop | 從左邊/右邊吐出一個值。值在鍵在,值光鍵亡。 |
rpoplpush | 從列表右邊吐出一個值,插到列表左邊 |
lrange | 按照索引下標獲得元素(從左到右) |
lindex | 按照索引下標獲得元素(從左到右) |
llen | 獲得列表長度 |
linsert before | 在的後面插入 插入值 |
lrem | 從左邊刪除n個value(從左到右) |
Set
命令 | 功能說明 |
---|---|
sadd .... | 將一個或多個 member 元素加入到集合 key 當中,已經存在於集合的 member 元素將被忽略。 |
smembers | 取出該集合的所有值。 |
sismember | 判斷集合是否為含有該值,有返回1,沒有返回0 |
scard | 返回該集合的元素個數。 |
srem .... | 刪除集合中的某個元素。 |
spop | 隨機從該集合中吐出一個值。 |
srandmember | 隨機從該集合中取出n個值。不會從集合中刪除 |
sinter | 返回兩個集合的交集元素。 |
sunion | 返回兩個集合的並集元素。 |
sdiff | 返回兩個集合的差集元素。 |
Hash
命令 | 功能說明 |
---|---|
hset | 給集合中的 鍵賦值 |
hget | 從集合 取出 value |
hmset ... | 批次設定hash的值 |
hexists key | 檢視雜湊表 key 中,給定域 field 是否存在。 |
hkeys | 列出該hash集合的所有field |
hvals | 列出該hash集合的所有value |
hincrby | 為雜湊表 key 中的域 field 的值加上增量 increment |
hsetnx | 將雜湊表 key 中的域 field 的值設定為 value ,當且僅當域 field 不存在 |
zset(Sorted set)
命令 | 功能說明 |
---|---|
zadd ... | 將一個或多個 member 元素及其 score 值加入到有序集 key 當中 |
zrange [WITHSCORES] | 返回有序集 key 中,下標在 之間的元素帶WITHSCORES,可以讓分數一起和值返回到結果集。 |
zrangebyscore key min max [withscores] [limit offset count] | 返回有序集 key 中,所有 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。有序整合員按 score 值遞增(從小到大)次序排列。 |
zrevrangebyscore key max min [withscores] [limit offset count] | 同上,改為從大到小排列。 |
zincrby | 為元素的score加上增量 |
zrem | 刪除該集合下,指定值的元素 |
zcount | 統計該集合,分數區間內的元素個數 |
zrank | 返回該值在集合中的排名,從0開始。 |
Flink
啟動
./start-cluster.sh
run
./bin/flink run [OPTIONS]
./bin/flink run -m yarn-cluster -c com.wang.flink.WordCount /opt/app/WordCount.jar
OPTIONS | 功能說明 |
---|---|
-d | detached 是否使用分離模式 |
-m | jobmanager 指定提交的jobmanager |
-yat | –yarnapplicationType 設定yarn應用的型別 |
-yD | 使用給定屬性的值 |
-yd | –yarndetached 使用yarn分離模式 |
-yh | –yarnhelp yarn session的幫助 |
-yid | –yarnapplicationId 掛到正在執行的yarnsession上 |
-yj | –yarnjar Flink jar檔案的路徑 |
-yjm | –yarnjobManagerMemory jobmanager的記憶體(單位M) |
-ynl | –yarnnodeLabel 指定 YARN 應用程式 YARN 節點標籤 |
-ynm | –yarnname 自定義yarn應用名稱 |
-yq | –yarnquery 顯示yarn的可用資源 |
-yqu | –yarnqueue 指定yarn佇列 |
-ys | –yarnslots 指定每個taskmanager的slots數 |
-yt | yarnship 在指定目錄中傳輸檔案 |
-ytm | –yarntaskManagerMemory 每個taskmanager的記憶體 |
-yz | –yarnzookeeperNamespace 用來建立ha的zk子路徑的名稱空間 |
-z | –zookeeperNamespace 用來建立ha的zk子路徑的名稱空間 |
-p | 並行度 |
-yn | 需要分配的YARN容器個數(=工作管理員的數量) |
info
./bin/flink info [OPTIONS]
OPTIONS | 功能說明 |
---|---|
-c | 程式進入點,主類 |
-p | 並行度 |
list
./bin/flink list [OPTIONS]
OPTIONS | 功能說明 |
---|---|
-a | –all 顯示所有應用和對應的job id |
-r | –running 顯示正在執行的應用和job id |
-s | –scheduled 顯示排程的應用和job id |
-m | –jobmanager 指定連線的jobmanager |
-yid | –yarnapplicationId 掛到指定的yarn id對應的yarn session上 |
-z | –zookeeperNamespace 用來建立ha的zk子路徑的名稱空間 |
stop
./bin/flink stop [OPTIONS] <Job ID>
OPTIONS | 功能說明 |
---|---|
-d | 在採取儲存點和停止管道之前,傳送MAX_WATERMARK |
-p | savepointPath 儲存點的路徑 'xxxxx' |
-m | –jobmanager 指定連線的jobmanager |
-yid | –yarnapplicationId 掛到指定的yarn id對應的yarn session上 |
-z | –zookeeperNamespace 用來建立ha的zk子路徑的名稱空間 |
cancel(弱化)
./bin/flink cancel [OPTIONS] <Job ID>
OPTIONS | 功能說明 |
---|---|
-s | 使用 "stop "代替 |
-D | 允許指定多個通用配置選項 |
-m | 要連線的JobManager的地址 |
-yid | –yarnapplicationId 掛到指定的yarn id對應的yarn session上 |
-z | –zookeeperNamespace 用來建立ha的zk子路徑的名稱空間 |
savepoint
./bin/flink savepoint [OPTIONS] <Job ID>
OPTIONS | 功能說明 |
---|---|
-d | 要處理的儲存點的路徑 |
-j | Flink程式的JAR檔案 |
-m | 要連線的JobManager的地址 |
-yid | –yarnapplicationId 掛到指定的yarn id對應的yarn session上 |
-z | –zookeeperNamespace 用來建立ha的zk子路徑的名稱空間 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024924/viewspace-2927527/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一文替你全部搞定:MySQL命令。MySql
- 大資料:小白升級版大資料
- 大資料基礎知識全集,大資料愛好者收藏必備大資料
- 大資料SQL優化之資料傾斜解決案例全集大資料SQL優化
- 大資料技術人員工具包最全集合大資料
- 大資料處理平臺都有哪些?大資料
- IAP商品修改和資料獲取,一文帶你全部搞懂
- 大資料對企業來說都有哪些作用大資料
- 一文了解主流大資料ETL工具大資料
- 沒有大資料在手,該怎麼為NLP應用深度學習?大資料深度學習
- 資料採集知識分享|4大資料採集方式都有什麼?大資料
- 大資料是什麼?一文帶你瞭解大資料的概念!大資料
- 電子技術應用專業資料全集
- 大資料系列1:一文初識Hdfs大資料
- LinkedIn大資料工程的升級大資料
- 一文讀懂大資料實時計算大資料
- 2020版JavaScript基礎入門教程全集分享JavaScript
- 超級乾貨 :一文讀懂資料視覺化視覺化
- 聯發科MT6737晶片處理器資料全集晶片
- 【大資料】【hadoop】檢視hdfs檔案命令大資料Hadoop
- 首批!360政企安全集團率先獲得國家級安全運營資質
- 寶付大資料視覺化一文解決大資料視覺化
- 一文告訴你大資料是什麼大資料
- 一文了解——雲原生大資料知識地圖大資料地圖
- .NET 百萬級 大資料插入、更新 ,支援多種資料庫大資料資料庫
- 大資料學習:怎樣進行大資料的入門級學習?大資料
- 大資料開發之常用命令大全大資料
- 一文詳解|高校到底如何開展資料分類分級?
- 資料分析師必備技能都有哪些?
- 避坑!用大資料告訴你,那些被淘汰的公司,都有哪些特徵?大資料特徵
- 1.1 大資料簡介-hadoop-最全最完整的保姆級的java大資料學習資料大資料HadoopJava
- Python語言的全部資料型別分享!Python資料型別
- win10版本升級磁碟消失怎麼找回_win10版本升級磁碟全部消失如何恢復Win10
- Java 22正式釋出,一文了解全部新特性Java
- [譯] 一文帶你學會全部Flutter的ProviderFlutterIDE
- Bootstrap 前端資源大全集(持續更新)boot前端
- 企業級大資料架構設計【2】大資料架構
- 浪潮助力手機大資料平臺升級大資料