問題現象
wget 'https://mirror.nexcess.net/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz'
# 一直顯示超時、重試、無法下載
原因分析
- 源站帶寬限制/地理位置導致連接緩慢
- 國內訪問國外鏡像站常被QoS限速或丟包
- HTTP鏈接無斷點續傳,斷點需重頭開始
解決方案(按推薦順序)
1. 更換國內高速鏡像(最簡單)
# 清華大學鏡像
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz
# 中科大鏡像
wget https://mirrors.ustc.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz
# 阿里云鏡像
wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz
2. 使用代理/VPN
# 環境變量方式(臨時)
export http_proxy=https://127.0.0.1:7890
export https_proxy=https://127.0.0.1:7890
wget ...
# 或 wget 參數方式
wget -e use_proxy=yes -e http_proxy=127.0.0.1:7890 ...
3. 啟用斷點續傳(必加參數)
wget -c -t 0 --timeout=30 'URL'
# -c: 續傳
# -t 0: 無限重試
# --timeout: 連接超時秒數
4. 替代工具:aria2 / curl(多線程、更強健)
# aria2c 16線程下載
aria2c -x 16 -s 16 -c 'URL'
# curl 斷點續傳
curl -C - -O 'URL' # -C - 自動斷點續傳
5. 離線下載傳輸(終極方案)
- 在有良好網絡的機器(雲服務器/本地有代理)下載完成
- 通過 `scp` / `rsync` / `sz` / 網盤傳輸到目標機器
- 校驗完整性:`md5sum hadoop-2.5.2.tar.gz` 對比官網發布的校驗碼
生產環境最佳實踐
- 構建鏡像/部署腳本時,**預先下載依賴到私有制品庫**(Nexus、Harbor、MinIO)
- 腳本中使用內網鏡像地址,避免構建時依賴外網
- 關鍵依賴鎖定版本、記錄校驗和,防範供應鏈攻擊