我是一名Spark学习的初学者,第一步先学着如何搭建一个开发环境,进而实现开发,方便后面学习。
为了学习Spark,当我们编写代码时希望可以使用Hadoop的HDFS等,因此搭建伪分布式集群,编写完代码调试完毕之后进行submit到集群中运行。这种适用于个人开发,因为笔记本的内存有限,创建多个虚拟机构成集群开发实在是太耗内存。
下载scala2.11 hadoop2.7 spark2.1.0-bin-hadoop2.7
解压完上述tgz包之后设置环境变量
构建Spark以及Hadoop分布式集群时,配置/etc/profile文件
export JAVA_HOME=/usr/local/java/jdk1.8.0export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH JAVA_HOME CLASSPATHexport SCALA_HOME=/home/zk/spark/scala-2.11.0export PATH=$PATH:$SCALA_HOME/binexport HADOOP_HOME=/home/zk/spark/hadoop-2.7.3export PATH=$PATH:$HADOOP_HOME/binexport SPARK_HOME=/home/zk/spark/spark-2.1.0-bin-hadoop2.7export PATH=$PATH:$SPARK_HOME/bin
配置Hadoop单机伪分布式
在etc/hadoop/hadoop-env.sh里面设置JAVA路径
export JAVA_HOME=/usr/local/java/jdk1.8.0
在etc/hadoop/core-site.xml:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://host_name:9000</value> </property></configuration>
在etc/hadoop/hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property></configuration>
此时单机情况下的hadoop就配置完成了,然后需要配置ssh localhost 免密码登陆
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
此时就配置完毕了,可以启动hadoop了
1,格式化文件
bin/hdfs namenode -format
2, 启动dfs
sbin/start-dfs.sh
3,查看jps
5248 NameNode 5447 DataNode 5820 SecondaryNameNode 6156 Jps
配置Spark
1, 到spark的conf目录下 copy一份spark-env.sh.template
cp spark-env.sh.template spark-env.sh
2,修改spark-env.sh
export JAVA_HOME=/usr/local/java/jdk1.8.0export SCALA_HOME=/home/zk/spark/scala-2.11.0export SPARK_MASTER_IP=host_nameexport SPARK_WORKER_MEMORY=2gexport HADOOP_CONF_DIR=/home/zk/spark/hadoop-2.7.3/etc/hadoop
3, 启动spark,到sbin目录下调用./start-all.sh
4,查看jps
5248 NameNode 6178 Master 5447 DataNode 6264 Worker 6779 Jps 5820 SecondaryNameNode
可以看到基本的Spark Hadoop单机分布式已经成功搭建好了。
下一部工作就是搭建IDEA开发环境开发应用程序。
作者:kason_zhang
链接:https://www.jianshu.com/p/b1227abe2ad1