Spark的安装

2017-04-30  本文已影响71人  sf705

以前看过Hadoop,熟悉Hadoop的具体流程,也看了部分源码,由于Spark比Hadoop高效,想一直看也没来得及,今天准备玩玩Spark,先从安装开始。

版本

Java:1.8
Hadoop:2.7.0
Spark:2.1.0

安装Java与Hadoop主要步骤

Hadoop-2.7.0/etc/hadoop 目录里面

本人将Java,Hadoop分别安装在,
/home/my105/jdk1.9
/home/my105/hadoop-2.7.0

hadoop-env.sh

export JAVA_HOME=/home/my105/jdk1.8

配置core-site.xml

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://master:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/home/my105/tmp</value>
        </property>
        <property>
                <name>hadoop.proxyuser.hduser.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.hduser.groups</name>
                <value>*</value>
        </property>
</configuration>

配置YARN,yarn-site.xml

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandle</value>
        </property>
        <property>
                <name>yarn.resourcemanager.address</name>
                <value>master:8032</value>
        </property>
        <property>
                <name>yarn.resouremanager.scheduler.address</name>
                <value>master:8030</value>
        </property>
        <property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:8031</value>
        </property>
        <property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:8033</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>master:8088</value>
        </property>
</configuration>

配置mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framwork.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>master:19888</value>
        </property>
</configuration>

配置hdfs-site.xml

此处我将NameNode和DataNode目录放:/home/my105/hadoop-2.7.0/nodetemp 中的两个文件,安装完成后执行:
sudo chmod 777 hadoop-2.7.0 -R
以上便于hadoop文件有权限创建上面的文件

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/my105/hadoop-2.7.0/nodetemp/namenode</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/my105/hadoop-2.7.0/nodetemp/datanode</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
</configuration>

配置master与slave文件

如果没有发现master文件,自己创建一个

master文件:
  master
slaves文件:
  slave1 
  slave2
  slave3

格式化 与启动

将配置好的Hadoop与JDK分别scp到各个Slave中,然后格式化,启动,进入Hadoop-2.7.0/ 目录

./bin/hadoop namenode - format
./sbin/start-all.sh

最后输入:jps,查看启动进程

master主机:
10648 ResourceManager
10265 NameNode
12939 Jps
10494 SecondaryNameNode
slave主机:
6977 NodeManager
7202 DataNode
7821 Jps

错误分析

如果没有出现上面的,或者出现错误,进入hadoop-2.7.0/logs
我一开始格式化后再重新格式化后,发现slave主机的DataNode启动不了,直接进入logs
vi hadoop-my105-datanode-slave1.log
发现了如下错误
org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to master
就是master和slave主机生成的NameNode和DataNode目录文件不一样,所以先把生成的文件删除,然后再格式化,或者将Uuid 拷贝过去

Paste_Image.png

Spark 安装

先进入官网下载一个
版本:Spark-2.1.0

Paste_Image.png

安装流程

配置spark-env.sh

export JAVA_HOME=/home/my105/jdk1.8
export HADOOP_HOME=/home/my105/hadoop-2.7.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_MASTER_IP=master
SPARK_LOCAL_DIRS=/home/my105/spark-2.1.0
SPARK_DRIVER_MEMORY=1G

配置slvaes

slave1
slave2
slave3

启动集群

./sbin/start-all.sh 启动,然后jps会发现如下内容
master主机:Maser

10648 ResourceManager
10265 NameNode
13018 Jps
10494 SecondaryNameNode
11855 Master

slave主机:Worker

6977 NodeManager
7202 DataNode
7895 Jps
7498 Worker
上一篇 下一篇

猜你喜欢

热点阅读