您好,登录后才能下订单哦!
# Hadoop2.6.0上的Spark1.5.2集群搭建指南
## 前言
在大数据技术生态中,Hadoop和Spark是两个核心组件。Hadoop提供了可靠的分布式存储(HDFS)和计算框架(MapReduce),而Spark则以其内存计算和高效的DAG执行引擎著称。本文将详细介绍在Hadoop 2.6.0环境中搭建Spark 1.5.2集群的全过程。
## 环境准备
### 硬件要求
- **至少3台服务器**(1个Master,2个Worker节点)
- **每台机器建议配置**:
- CPU: 4核以上
- 内存: 8GB以上(Spark对内存需求较高)
- 磁盘: 50GB以上可用空间
- 网络: 千兆网卡
### 软件要求
- **操作系统**: Linux(推荐CentOS 7.x或Ubuntu 16.04)
- **Java环境**: JDK 1.7或更高版本
- **Hadoop版本**: 2.6.0
- **Spark版本**: 1.5.2
- **SSH**: 节点间需配置免密登录
## 第一步:基础环境配置
### 1. 系统设置
```bash
# 所有节点执行
sudo hostnamectl set-hostname master # 主节点
sudo hostnamectl set-hostname worker1 # 工作节点1
sudo hostnamectl set-hostname worker2 # 工作节点2
# 编辑/etc/hosts文件
192.168.1.100 master
192.168.1.101 worker1
192.168.1.102 worker2
sudo useradd hadoop
sudo passwd hadoop
sudo usermod -aG wheel hadoop # CentOS
sudo usermod -aG sudo hadoop # Ubuntu
# 在master节点执行
su - hadoop
ssh-keygen -t rsa
ssh-copy-id hadoop@master
ssh-copy-id hadoop@worker1
ssh-copy-id hadoop@worker2
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/hadoop-2.6.0.tar.gz
tar -xzvf hadoop-2.6.0.tar.gz -C /opt/
ln -s /opt/hadoop-2.6.0 /opt/hadoop
编辑~/.bashrc
文件:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$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>/opt/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hdfs/data</value>
</property>
</configuration>
mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
编辑$HADOOP_HOME/etc/hadoop/slaves
文件:
worker1
worker2
# 在master节点执行
hdfs namenode -format
start-dfs.sh
start-yarn.sh
验证集群状态:
jps
# 应该看到NameNode、ResourceManager等进程
hdfs dfsadmin -report
wget https://archive.apache.org/dist/spark/spark-1.5.2/spark-1.5.2-bin-hadoop2.6.tgz
tar -xzvf spark-1.5.2-bin-hadoop2.6.tgz -C /opt/
ln -s /opt/spark-1.5.2-bin-hadoop2.6 /opt/spark
编辑~/.bashrc
文件:
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin
spark-env.sh:
cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh
编辑内容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=4g
export SPARK_WORKER_CORES=2
export SPARK_LOCAL_DIRS=/opt/spark/tmp
slaves:
cp $SPARK_HOME/conf/slaves.template $SPARK_HOME/conf/slaves
编辑内容:
worker1
worker2
scp -r /opt/spark-1.5.2-bin-hadoop2.6 hadoop@worker1:/opt/
scp -r /opt/spark-1.5.2-bin-hadoop2.6 hadoop@worker2:/opt/
$SPARK_HOME/sbin/start-all.sh
验证集群状态:
jps
# 应该看到Master和Worker进程
访问Web UI:http://master:8080
spark-submit --class org.apache.spark.examples.SparkPi \
--master spark://master:7077 \
$SPARK_HOME/examples/jars/spark-examples_2.10-1.5.2.jar 100
hdfs dfs -put $SPARK_HOME/README.md /spark-test/
spark-shell --master spark://master:7077
# 在Spark Shell中执行
val textFile = sc.textFile("hdfs://master:9000/spark-test/README.md")
textFile.count()
如果遇到端口冲突,可以修改以下配置:
# 在spark-env.sh中
export SPARK_MASTER_WEBUI_PORT=8989
调整Executor内存:
spark-submit --executor-memory 2G ...
检查: - 防火墙状态 - /etc/hosts配置 - SSH免密登录是否配置正确
内存配置:
SPARK_WORKER_MEMORY
spark.executor.memory
和spark.driver.memory
并行度优化:
spark.default.parallelism
(建议为集群总核数的2-3倍)数据本地性:
hdfs://
路径而非本地路径序列化配置:
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
通过本文的详细步骤,您已经成功在Hadoop 2.6.0上搭建了Spark 1.5.2集群。虽然这两个版本相对较旧,但这一过程对于理解Hadoop与Spark的集成原理仍然具有重要价值。对于生产环境,建议考虑更新版本的组合以获得更好的性能和安全性。
命令 | 描述 |
---|---|
start-all.sh |
启动Spark集群 |
stop-all.sh |
停止Spark集群 |
spark-shell |
启动交互式Shell |
spark-submit |
提交Spark作业 |
”`
注:本文约2950字,详细介绍了从环境准备到集群验证的完整过程,包含了配置示例、命令操作和常见问题解决方案。实际部署时请根据具体环境调整参数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。