spark筑基篇-00-Spark集群环境搭建

来源:互联网 发布:sql 清空整个数据库 编辑:程序博客网 时间:2024/06/05 09:16

  • 说明
    • 1 效果图
    • 2 实验环境
    • 3 配置ssh免登陆
  • 集群搭建
    • 1 配置环境变量
    • 2 配置hadoop
      • 21 core-sitexml
      • 22 hdfs-sitexm
      • 23 mapred-sitexml
      • 24 yarn-sitexml
      • 25 hadoop环境变量
      • 26 slaves
      • 27 复制到其他节点
      • 28 验证
    • 3 配置spark
      • 31 spark环境变量
      • 32 spark-envsh
      • 33 slaves
      • 34 spark-defaultsconf
      • 35 复制到其他节点
      • 验证
  • 执行HelloWorld

1 说明

1.1 效果图

实现1个Master两个Worker的伪集群环境搭建。

Cluster

1.2 实验环境

item desc OS CentOS release 6.7 (Final) java jdk-8u101-linux-x64.tar.gz scala scala-2.11.8.tgz hadoop hadoop-2.6.5.tar.gz spark spark-2.0.1-bin-hadoop2.6.tgz

确保三台主机上的域名解析配置如下:

[root@h1 /]# cat /etc/hosts127.0.0.1       localhost.localdomain localhost192.168.161.128 h1192.168.161.129 h2192.168.161.130 h3::1     localhost6.localdomain6 localhost6

1.3 配置ssh免登陆

配置好h1到h2,h3的ssh免登陆。
至于如何配置ssh免登陆可以参考本人的另一篇文章:ssh/OpenSSH

2 集群搭建

2.1 配置环境变量

这个没啥好说的了。以下是本人的配置:

# javaexport JAVA_HOME=/soft/jdk1.8.0_101export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$PATH:$JAVA_HOME/bin# scalaexport SCALA_HOME=/soft/scala-2.11.8export PATH=$PATH:$SCALA_HOME/bin

2.2 配置hadoop

# 下载wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz# 解压tar -zxvf hadoop-2.6.5.tar.gz# 可选(本人喜欢将软件统一安装的根目录的soft目录下)mv hadoop-2.6.5 /soft/

2.2.1 core-site.xml

vim /soft/hadoop-2.6.5/etc/hadoop/core-site.xml

内容如下:

<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://h1:9000</value>    </property>    <property>        <name>hadoop.tmp.dir</name>        <value>/soft/hadoop-2.6.5/tmp</value>    </property>    <property>        <name>hadoop.native.lib</name>        <value>true</value>    </property></configuration>

2.2.2 hdfs-site.xm

vim /soft/hadoop-2.6.5/etc/hadoop/hdfs-site.xml

内容如下:

<configuration>    <property>        <name>sdf.replication</name>        <value>2</value>    </property>    <property>        <name>dfs.namenode.secondary.http-address</name>        <value>h1:50090</value>    </property>    <property>        <name>dfs.namenode.name.dir</name>        <value>/soft/hadoop-2.6.5/dfs/data</value>    </property>    <property>        <name>dfs.namenode.checkpoint.dir</name>        <value>file:///soft/hadoop-2.6.5/dfs/namesecondary</value>    </property></configuration>

2.2.3 mapred-site.xml

cp mapred-site.xml.template mapred-site.xmlvim mapred-site.xml

内容如下:

<configuration>    <property>        <name>mapreduce.framework.name</name>        <value>yarn</value>    </property></configuration>

2.2.4 yarn-site.xml

vim /soft/hadoop-2.6.5/etc/hadoop/yarn-site.xml

内容如下:

<configuration>    <property>        <name>yarn.resourcemanager.hostname</name>        <value>h1</value>    </property>    <property>        <name>yarn.nodemanager.aux-services</name>        <value>mapreduce_shuffle</value>    </property></configuration>

2.2.5 hadoop环境变量

export HADOOP_HOME=/soft/hadoop-2.6.5export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"export PATH=$PATH:$HADOOP_HOME/bin

2.2.6 slaves

vim /soft/hadoop-2.6.5/etc/hadoop/slaves

内容如下:

h1h2h3

2.2.7 复制到其他节点

# 先格式化HDFS/soft/hadoop-2.6.5/bin/hdfs namenode -format# 复制到主机 h2scp -r /soft/hadoop-2.6.5/ root@h2:/soft# 复制到主机 h3scp -r /soft/hadoop-2.6.5/ root@h3:/soft# 同时别忘了其他机器上的环境变量

2.2.8 验证

# 启动hdfs----在h1上操作即可/soft/hadoop-2.6.5/sbin/start-all.sh
# 看到正常启动之后分别在h1,h2,h3上查看java进程快照# h1[root@h1 sbin]# jps4225 SecondaryNameNode4053 DataNode3957 NameNode4539 NodeManager4574 Jps4447 ResourceManager# h2[root@h2 soft]# jps3499 Jps3390 NodeManager3231 DataNode# h3[root@h3 soft]# jps3194 DataNode3452 Jps3342 NodeManager

通过浏览器查看HDFS状态:http://h1:50070/dfshealth.html#tab-overview

tab-datanode标签可以看到如下内容:

datanode infomation

或者查看:http://h1:8088/cluster

2.3 配置spark

# 下载wget http://d3kbcqa49mib13.cloudfront.net/spark-2.0.1-bin-hadoop2.6.tgz# 解压tar -zxvf spark-2.0.1-bin-hadoop2.6.tgz# 可选(本人喜欢将软件统一安装的根目录的soft目录下)mv spark-2.0.1-bin-hadoop2.6 /soft/

2.3.1 spark环境变量

export SPARK_HOME=/soft/spark-2.0.1-bin-hadoop2.6/export PATH=$PATH:$SPARK_HOME/bin

2.3.2 spark-env.sh

cd /soft/spark-2.0.1-bin-hadoop2.6/confcp spark-env.sh.template spark-env.shvim spark-env.sh

在最后加入如下内容:

export JAVA_HOME=/soft/jdk1.8.0_101export SCALA_HOME=/soft/scala-2.11.8export HADOOP_HOME=/soft/hadoop-2.6.5export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport SPARK_MASTER_IP=h1export SPARK_WORKER_MEMORY=512Mexport SPARK_EXECUTOR_MEMORY=512Mexport SPARK_DRIVER_MEMORY=512Mexport SPARK_WORKER_CORES=1

2.3.3 slaves

cd /soft/spark-2.0.1-bin-hadoop2.6/confcp slaves.template slavesvim slaves

在最后加入如下内容:

h2h3

2.3.4 spark-defaults.conf

cd /soft/spark-2.0.1-bin-hadoop2.6/confcp spark-defaults.conf.template spark-defaults.confvim spark-defaults.conf

在最后加入如下内容:

spark.executor.extraJavaOptions     -XX:+PrintGCDetails -DKey=value -Dnumbers="one two three"spark.eventLog.enabled              truespark.eventLog.dir                  hdfs://h1:9000/historyserverforSparkspark.yarn.historyServer.address    h1:18080spark.history.fs.logDirectory       hdfs://h1:9000/historyserverforSpark

2.3.5 复制到其他节点

# 复制到h2scp -r /soft/spark-2.0.1-bin-hadoop2.6/ root@h2:/soft# 复制到h3scp -r /soft/spark-2.0.1-bin-hadoop2.6/ root@h3:/soft# 同时别忘了其他节点的环境变量

验证

# 启动 - 在h1上操作即可/soft/spark-2.0.1-bin-hadoop2.6/start-all.sh
# h1[root@h1 sbin]# jps4435 SecondaryNameNode4164 NameNode4583 ResourceManager4263 DataNode4680 NodeManager5020 Master5084 Jps# h2[root@h2 soft]# jps3284 DataNode3543 Worker3591 Jps3384 NodeManager# h3[root@h3 soft]# jps3280 DataNode3538 Worker3380 NodeManager3588 Jps

通过浏览器查看HDFS状态:http://h1:8080,可以看到如下内容:

spark-works

3 执行HelloWorld

此处的HelloWorld指的是Spark内置的例子中的一个用来计算PI的程序。

注意:

在执行该jar包前请先确保hadoop和Spark都已经启动。
另外,如果配置了日志服务,请先为其创建对应的日志目录再执行后续步骤:

hdfs dfs -mkdir /historyserverforSpark

执行

./bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://h1:7077 \--executor-memory 512m \--total-executor-cores 10 \/soft/spark-2.0.1-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.0.1.jar \10

结果

PI

下一篇文章将分享在Eclipse中编写并执行SparkHello:spark筑基篇-01-Eclipse开发Spark HelloWorld

0 0
原创粉丝点击