Hadoop在Ubuntu上的最佳實踐
sudo apt update && sudo apt upgrade -y
更新系統包。sudo apt install openjdk-8-jdk -y
安裝,通過java -version
驗證安裝(需顯示Java版本信息)。sudo apt install openssh-server -y
,啟動服務sudo systemctl start ssh
并設置開機自啟sudo systemctl enable ssh
;生成密鑰對ssh-keygen -t rsa
,將公鑰復制到本機cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
,設置權限chmod 600 ~/.ssh/authorized_keys
和chmod 700 ~/.ssh
。/usr/local
),并修改權限sudo chown -R hadoop:hadoop /usr/local/hadoop
(hadoop為用戶)。~/.bashrc
(或/etc/profile
),添加Hadoop和Java路徑:export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
執行source ~/.bashrc
使配置生效。fs.defaultFS
為hdfs://localhost:9000
(偽分布式)或NameNode IP。dfs.namenode.name.dir
(如/usr/local/hadoop/tmp/dfs/name
)、DataNode數據目錄dfs.datanode.data.dir
(如/usr/local/hadoop/tmp/dfs/data
),以及副本數dfs.replication
(偽分布式設為1,集群設為3)。mapreduce.framework.name
為yarn
。yarn.nodemanager.aux-services
為mapreduce_shuffle
。hdfs namenode -format
。start-dfs.sh
和YARNstart-yarn.sh
,通過jps
命令查看進程(應顯示NameNode、DataNode、ResourceManager、NodeManager)。http://localhost:9870
)查看HDFS狀態,訪問YARN ResourceManager(http://localhost:8088
)查看資源分配。yarn.nodemanager.resource.memory-mb
(如8GB),MapReduce任務JVM堆大小mapreduce.map.java.opts
(如2GB)、mapreduce.reduce.java.opts
(如4GB)。yarn.nodemanager.resource.cpu-vcores
(如8核)。dfs.blocksize
(如128MB或256MB),減少Map任務數量。mapreduce.job.maps
(如每128MB數據1個Map任務)和mapreduce.job.reduces
(如每1GB數據1個Reduce任務),提高并行處理能力。mapreduce.map.output.compress
(true)和輸出壓縮mapreduce.output.fileoutputformat.compress
(true),使用Snappy或LZO壓縮算法,減少磁盤IO和網絡傳輸。mapreduce.job.locality.wait
(如3秒),讓Map任務優先在數據所在節點運行,減少網絡傳輸。yarn.scheduler.capacity.root.default.capacity
設為80%),合理分配資源。java -version
驗證。ssh localhost
,若失敗檢查~/.ssh/authorized_keys
權限和SSH服務狀態。hadoop fs -ls /
,確保用戶有讀寫權限,必要時使用hadoop fs -chmod
調整。yarn logs -applicationId <應用ID>
),定位代碼或配置問題。