Spark伪分布式环境搭建

Spark天生提供的并行计算、分布式计算给大数据的分析提供了非常棒的平台,以往的数据库的很多操作都可以直接在Spark中进行处理,其速度十分快,远远比数据库中的集合操作要爽很多,因此也准备认坑Spark。

首先是Spark的环境搭建,单纯单机的Spark的环境还是十分简单,选择也有很多种,比如docker,比如虚拟机,比如下载解压就可以用。

环境搭建中主要包括以下几个方面:
1、SSH环境,Spark有很多种部署方式,local、standalone、集群,都需要SSH免登陆设置,SSH的免登陆设置只需要查找ssh-keygen证书免登陆设置就可以查到,如果是单机,要确保单机SSH不需要密码,如果是集群,要确保集群间SSH不需要密码(此处个人认为应该是master和slaves之间即可,不需要slaves之间的配置。有人配置过的可以请明示一下!!!)。

2、解压你的Spark:spark-2.3.1-bin-hadoop2.7.tgz,当然有需要的也会连带安装Hadoop(解压hadoop-2.7.7.tar),往往Hadoop和Spark版本是需要对应的,不然会出错。

3、Java环境,现在较新版本的Spark都需要1.8以上的JDK,最好是rpm的原场JDK。

4、配置环境,如~/.bashrc,spark-2.3.1-bin-hadoop2.7/conf/spark-env.sh环境。

export JAVA_HOME=/usr/local/java/jdk1.8.0_192
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/usr/local /hadoop-2.7.7
export SPARK_HOME=/usr/local/spark-2.3.1-bin-hadoop2.7
exportPATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${SPARK_HOME}/bin:${SPARK_HOME}/sbin:${PATH}

然后更新bash环境

source ~/.bashrc

此外还需要设置Spark的执行环境,编辑spark-2.3.1-bin-hadoop2.7/conf/spark-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_192
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_HOME=/usr/local/spark-2.3.1-bin-hadoop2.7
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native
export SPARK_MASTER_IP=127.0.0.1
export SPARK_MASTER_HOST=127.0.0.1
export SPARK_LOCLA_DIRS=/usr/local/spark-2.3.1-bin-hadoop2.7
export SPARK_YARN_USER_ENV="CLASSPATH=/usr/local/hadoop-2.7.7/etc/hadoop"

5、让hadoop使用Spark的shuffle

cp /usr/local/spark-2.3.1-bin-hadoop2.7/yarn/spark-2.3.1-yarn-shuffle.jar /usr/local/hadoop-2.7.7/share/hadoop/yarn/lib

6、配置hadoop设置/hadoop-2.7.7/etc/hadoop下的core-site.xml,hdfs-site.xml,mapred_site.xml,yarn-site.xml。详细如下:
core-site.xml

<configuration>

    <!-- Configuration defauleFS -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://127.0.0.1:8020</value>
    </property>

    <!-- Configuration dataTemp -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/hadoop-2.7.7/data/tmp</value>
    </property>

    <!-- Configuration ZooKeeper -->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>127.0.0.1:2181</value>
    </property>

</configuration>

hdfs-site.xml

<configuration>

    <!-- Configuration the amount of data backup -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <!-- configuration master node -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/hadoop-2.7.7/dfs/name</value>
    </property>

    <!-- Configuration slave node -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/hadoop-2.7.7/dfs/data</value>
    </property>

    <!-- Configuration from the maximum number of nodes -->
    <property>
        <name>dfs.namenode.handler.count</name>
        <value>100</value>
    </property>

    <!-- Is the configuration visible on the web page -->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>

</configuration>

mapred_site.xml

<configuration>

    <!-- Configuration of compution frameword -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <final>true</final>
    </property>

    <!-- Setting up historical work record address -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>127.0.0.1:10020</value>
    </property>

    <!-- Configuration you can see history in webapp -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>127.0.0.1:19888</value>
    </property>
</configuration>

yarn-site.xml

<configuration>

    <!-- Site specific YARN configuration properties -->

    <!-- Configuring node management services -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle,spark_shuffle</value>
    </property>

    <!-- Configuration specific calculation method -->
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.spark_shuffle.class</name>
        <value>org.apache.spark.network.yarn.YarnShuffleService</value>
    </property>

    <!-- Configuration log file address -->
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>/usr/local/hadoop/hadoop-2.7.7/logs</value>
    </property>

    <!-- Configuration of resource management -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>127.0.0.1</value>
    </property>

    <!-- Configuration of resource management address -->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>127.0.0.1:8032</value>
    </property>

    <!-- Configuration of resource management for webapp address -->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>127.0.0.1:8088</value>
    </property>

    <!-- If you used jdk1.8 that add config in this -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

7、启动,首先要对namenode进行格式化(docker中,我没有格式化,结果怎么都不能使用)。

/usr/local/hadoop-2.7.7/bin/hadoop namenode -format

然后启动hadoop,

/usr/local/hadoop-2.7.7/sbin/start-all.sh

其次启动spark

/usr/local/spark-2.3.1-bin-hadoop2.7/sbin/start-all.sh

8、关闭,首先关闭spark

/usr/local/spark-2.3.1-bin-hadoop2.7/sbin/stop-all.sh

然后关闭hadoop

/usr/local/hadoop-2.7.7/sbin/stop-all.sh
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容