1. Athena 查詢長(zhǎng)時(shí)間無反應(yīng)咆畏,也不掃描數(shù)據(jù)
Athena是serverless服務(wù)松邪,因此會(huì)使用公用的資源池礼饱,提供不同的使用者所提交的各個(gè)查詢一同使用資源。當(dāng)一個(gè)查詢被提交時(shí)鲸匿,Athena系統(tǒng)會(huì)估算該查詢需要用到的資源數(shù)量爷怀,并向資源池申請(qǐng)資源,成功獲得資源后带欢,會(huì)將相關(guān)的Stage與Task派發(fā)在這些資源的Presto worker上運(yùn)行运授。在這一系列的工作流程中,若資源池的資源較為稀缺時(shí)乔煞,則從申請(qǐng)資源到成功獲得資源所耗費(fèi)的時(shí)間就會(huì)比較長(zhǎng)吁朦。
通常資源相關(guān)的問題,可以借由重試(將完全相同的查詢命令重跑一次)來解決渡贾。因?yàn)锳thena會(huì)自動(dòng)彈性維護(hù)資源池逗宜,重試操作會(huì)發(fā)出新的查詢,重新發(fā)出申請(qǐng)資源的請(qǐng)求剥啤,提高申請(qǐng)到底層資源的機(jī)率锦溪。在大多數(shù)情況下不脯,資源相關(guān)的問題都能夠借由重試來解決府怯。
為什么我的 Amazon Athena 查詢運(yùn)行時(shí)間很長(zhǎng)
2.elasticache 創(chuàng)建后連接不上
外網(wǎng)是要開傳輸加密后才能連的,先看內(nèi)網(wǎng)連接防楷。
創(chuàng)建時(shí)不選傳輸加密內(nèi)網(wǎng)時(shí)可以直接連的牺丙,不需要特殊設(shè)置。
不能連的話复局,先檢查集群的安全組有沒有對(duì)內(nèi)網(wǎng)測(cè)試的ec2放開6379的權(quán)限冲簿,
telnet 測(cè)試下主終端節(jié)點(diǎn)通不通。
通的話說明網(wǎng)絡(luò)正常亿昏,看下開了傳輸加密沒有峦剔,開的話要加 --tls 參數(shù)才能連。
連接到集群節(jié)點(diǎn)
3. vpc 內(nèi)無法解析內(nèi)網(wǎng)域名地址
看下你的vpc屬性那里角钩,開了 dns 解析沒有吝沫,開了當(dāng)前 vpc 內(nèi)的地址肯定是可以解析的。
還有種情況是跨 vpc的递礼,開了vpc peering的惨险,一個(gè)vpc內(nèi)的機(jī)器沒法解析另一端的vpc的內(nèi)網(wǎng)域名地址,
這個(gè)需要特殊設(shè)置dns的域名解析脊髓,具體參考下面的文檔
實(shí)現(xiàn)對(duì)對(duì)等連接的 DNS 解析
4. rds mysql 中的 rdsadmin
在 rds mysql 中查 user 表辫愉,能發(fā)現(xiàn)一個(gè)用戶叫 rdsadmin,這個(gè)是 aws 自己建的将硝,用于管理集群升級(jí)備份等操作的恭朗。不要去刪除屏镊,修改這個(gè)用戶和它的權(quán)限,會(huì)導(dǎo)致集群出錯(cuò)的冀墨。
要為每個(gè)數(shù)據(jù)庫實(shí)例提供管理服務(wù)闸衫,需在創(chuàng)建數(shù)據(jù)庫實(shí)例時(shí)創(chuàng)建 rdsadmin 用戶。如果試圖刪掉诽嘉、重命名蔚出、修改密碼,或者修改 rdsadmin 賬戶的權(quán)限虫腋,會(huì)導(dǎo)致出錯(cuò)骄酗。
https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/CHAP_MySQL.html
5. GA 詳細(xì)日志和監(jiān)控分析
如果想要查 ga 的日志和監(jiān)控信息,比如網(wǎng)絡(luò)波動(dòng)或者用戶連接情況悦冀,只能用 aws cli 開 ga 的 flow log 趋翻。 之后用 athena 去查。查詢 AWS Global Accelerator 流日志 盒蟆。
6. glue 表版本的配額限制
glue 中的表在沒修改一次表設(shè)置(表結(jié)構(gòu)踏烙,名稱,路徑等)都會(huì)生成一個(gè)歷史記錄历等,每個(gè)歷史記錄都有一個(gè)版本號(hào)讨惩,是從0開始的自增序列。默認(rèn)的上限是10萬寒屯。雖然看著很多荐捻,但是如果你的代碼里有經(jīng)常修改表設(shè)置的,還是有可能刷滿配額的寡夹,這個(gè)時(shí)候就不能再修改了处面。你可以開 case 提升這個(gè)配額,不過有上限總會(huì)打滿的菩掏,可以使用 aws 的接口批量刪除舊的版本魂角。
batch-delete-table-version — AWS CLI 2.7.0 Command Reference (amazonaws.com)
7. lambda vpc 內(nèi)訪問其他賬號(hào)的 S3
有些服務(wù)在 vpc 私有子網(wǎng),為了訪問這些服務(wù)智绸,lamda 也要搭在 vpc 內(nèi)野揪,這時(shí) lambda 需要 nat 才能訪問到公網(wǎng)的資源,但是如果訪問的是 aws 的服務(wù)的話传于,可以創(chuàng)建對(duì)應(yīng)服務(wù)的終端節(jié)點(diǎn)囱挑,讓 lambda 直接在內(nèi)網(wǎng)訪問到這些服務(wù)。因此也可以通過終端節(jié)點(diǎn)訪問 s3沼溜,不過終端節(jié)點(diǎn)是建在 vpc 上的平挑,你的 vpc 和你的 s3 桶必須在同一 region,否則 lambda 會(huì)直接報(bào) time out。
同一 region 下的 s3 其實(shí)都是在同一個(gè)地方通熄,即使賬號(hào)不同唆涝。所以建了終端節(jié)點(diǎn)后,內(nèi)網(wǎng)訪問其他賬號(hào)的 s3 桶也是可以的唇辨。
8. EMR 中 yarn 可調(diào)度的內(nèi)存很少
啟動(dòng)了2臺(tái) m5.xlarge 的 emr 集群廊酣,總的內(nèi)存 32GB,但是在 yarn 的 web 頁面看到總內(nèi)存才12GB赏枚。這應(yīng)該是個(gè)bug亡驰,根據(jù)文檔,單臺(tái) m5.xlarge 的 yarn 可用內(nèi)存應(yīng)該是 12GB 多點(diǎn)饿幅。試了其他機(jī)型凡辱,都是和文檔相符的。不過這個(gè)參數(shù)也可以在控制臺(tái)修改栗恩,調(diào)整到文檔給出的值就好透乾。
yarn.nodemanager.resource.memory-mb
yarn.scheduler.maximum-allocation-mb
任務(wù)配置 - Amazon EMR
9. 報(bào)權(quán)限錯(cuò)誤時(shí)帶了一串編碼的字符串
有時(shí)遇到一些權(quán)限上的錯(cuò)誤,控制臺(tái)上或者 cli 會(huì)報(bào)出如下的錯(cuò)誤磕秤,后面還跟了很長(zhǎng)的編碼后的字符串乳乌,這個(gè)的意思是權(quán)限錯(cuò)誤的具體信息被加密了,想要得到原信息必須用報(bào)出這個(gè)錯(cuò)的賬號(hào)去執(zhí)行 decode-authorization-message 這個(gè)命令去解密市咆。注意:執(zhí)行這個(gè)命令也需要單獨(dú)的權(quán)限汉操,請(qǐng)先確保你有sts服務(wù)下的這個(gè)權(quán)限,再去執(zhí)行解密命令床绪。
Service role test-emr-role has insufficient EC2 permissions. EC2 Message: AmazonEC2Exception: You are not authorized to perform this operation. Encoded authorization failure message
Amazon EC2 中 RunInstances 的編碼授權(quán)失敗
10. EMR 擴(kuò)充 core 節(jié)點(diǎn)的磁盤空間
emr 中 yarn 的日志默認(rèn)是保存在 hdfs 上的客情,保存期限是2天其弊,物理位置是在 core 節(jié)點(diǎn)上癞己。100G的節(jié)點(diǎn)實(shí)際只有30G左右可以用來存日志,3臺(tái) master 的話就是100G梭伐。如果你的日志刷的過快痹雅,把hdfs寫滿了,程序就會(huì)報(bào)錯(cuò)糊识,這時(shí)要么調(diào)節(jié)日志保留期绩社,要么擴(kuò)core節(jié)點(diǎn)的存儲(chǔ)空間。
擴(kuò)充存儲(chǔ)空間需要在ec2頁面操作赂苗,EMR是沒有直接修改磁盤的設(shè)置的愉耙,就把core節(jié)點(diǎn)當(dāng)作一個(gè)普通的ec2實(shí)例,找到對(duì)應(yīng)的ebs磁盤拌滋,然后調(diào)整大小朴沿,再到實(shí)例里面擴(kuò)容就好了。
需要注意的是,core有兩個(gè)硬盤設(shè)備
用
df -T
看到的是nvme而不是sbc對(duì)于 amazon linux2赌渣,可以用
sudo /sbin/ebsnvme-id /dev/nvme1n1
來查看映射關(guān)系之后還需要在實(shí)例里面 growpart 和 resize魏铅。
以擴(kuò)充 /mnt 為例
sudo growpart /dev/nvme1n1 2
sudo xfs_growfs /dev/nvme1n1p2
調(diào)整卷大小后擴(kuò)展 Linux 文件系統(tǒng) - Amazon Elastic Compute Cloud