# Hadoop 2.7 + Spark 1.4環境搭建指南
## 目錄
1. [環境準備](#環境準備)
2. [Hadoop 2.7集群搭建](#hadoop-27集群搭建)
- [SSH無密碼登錄配置](#ssh無密碼登錄配置)
- [Java環境安裝](#java環境安裝)
- [Hadoop安裝與配置](#hadoop安裝與配置)
- [集群啟動與驗證](#集群啟動與驗證)
3. [Spark 1.4集群搭建](#spark-14集群搭建)
- [Scala環境安裝](#scala環境安裝)
- [Spark安裝與配置](#spark安裝與配置)
- [Spark集群驗證](#spark集群驗證)
4. [集成測試](#集成測試)
5. [常見問題解決](#常見問題解決)
6. [性能優化建議](#性能優化建議)
---
## 環境準備
### 硬件要求
- **Master節點**:建議4核CPU/8GB內存/100GB存儲
- **Slave節點**:建議2核CPU/4GB內存/50GB存儲(至少2個節點)
- 網絡:千兆以太網,關閉防火墻或開放必要端口
### 軟件要求
- 操作系統:Ubuntu 16.04 LTS/CentOS 7
- Java版本:JDK 1.8
- Hadoop版本:2.7.7
- Spark版本:1.4.0
- Scala版本:2.10.5
### 節點規劃示例
| 主機名 | IP地址 | 角色 |
|----------|------------|-----------------------|
| master | 192.168.1.10 | NameNode, ResourceManager, Spark Master |
| slave1 | 192.168.1.11 | DataNode, NodeManager, Spark Worker |
| slave2 | 192.168.1.12 | DataNode, NodeManager, Spark Worker |
---
## Hadoop 2.7集群搭建
### SSH無密碼登錄配置
```bash
# 所有節點執行
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# Master節點執行
scp ~/.ssh/id_rsa.pub slave1:~/.ssh/master.pub
ssh slave1 "cat ~/.ssh/master.pub >> ~/.ssh/authorized_keys"
# Ubuntu示例
sudo apt-get update
sudo apt-get install openjdk-8-jdk
# 驗證安裝
java -version
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.7/hadoop-2.7.7.tar.gz
tar -xzvf hadoop-2.7.7.tar.gz -C /usr/local/
/etc/profile)export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
$HADOOP_HOME/etc/hadoop/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
</configuration>
$HADOOP_HOME/etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
</configuration>
<!-- yarn-site.xml -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
# 首次啟動需格式化NameNode
hdfs namenode -format
# 啟動HDFS
start-dfs.sh
# 啟動YARN
start-yarn.sh
# 驗證服務
jps # 應看到NameNode/DataNode/ResourceManager等進程
hdfs dfsadmin -report # 查看節點狀態
wget https://downloads.lightbend.com/scala/2.10.5/scala-2.10.5.tgz
tar -xzvf scala-2.10.5.tgz -C /usr/local/
export SCALA_HOME=/usr/local/scala-2.10.5
export PATH=$PATH:$SCALA_HOME/bin
wget https://archive.apache.org/dist/spark/spark-1.4.0/spark-1.4.0-bin-hadoop2.7.tgz
tar -xzvf spark-1.4.0-bin-hadoop2.7.tgz -C /usr/local/
export SPARK_HOME=/usr/local/spark-1.4.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
$SPARK_HOME/conf/spark-env.sh:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export SCALA_HOME=/usr/local/scala-2.10.5
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=192.168.1.10
export SPARK_WORKER_MEMORY=4g
$SPARK_HOME/conf/slaves:
slave1
slave2
# 啟動集群
$SPARK_HOME/sbin/start-all.sh
# 驗證Web UI
http://master:8080 # 查看Worker節點狀態
# 運行測試程序
spark-submit --class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
$SPARK_HOME/examples/jars/spark-examples_2.10-1.4.0.jar 100
hdfs dfs -mkdir /test
hdfs dfs -put $HADOOP_HOME/LICENSE.txt /test
hdfs dfs -cat /test/LICENSE.txt
val textFile = sc.textFile("hdfs://master:9000/test/LICENSE.txt")
textFile.count()
Hadoop啟動失敗
$HADOOP_HOME/logs/Spark Worker未注冊
$SPARK_HOME/conf/slaves文件格式內存不足錯誤
export SPARK_WORKER_MEMORY=2g # 降低內存配置
Hadoop調優
mapred-site.xml中的任務并行度Spark調優
spark-submit --executor-memory 2g --total-executor-cores 4 ...
硬件層面
注:本文基于測試環境編寫,生產環境需根據實際需求調整配置參數。建議通過Ambari或Cloudera Manager等工具進行集群管理。 “`
該文檔包含: - 完整的安裝流程(代碼塊+配置示例) - 分步驟的驗證方法 - 常見問題解決方案 - 關鍵注意事項(黃色高亮提示) - 符合Markdown規范的結構化排版
實際使用時可根據具體環境調整IP地址、路徑等參數。建議配合官方文檔閱讀以獲得最新安全補丁信息。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。