Spark1.6.1平台搭建(hadoop-2.7.2 scala-2.11.8)

来源:互联网 发布:java格式化html代码 编辑:程序博客网 时间:2024/05/19 02:27

0 说明

0.1 备注

建立文件夹(sparkdir、hadoop、java、scala、spark) 每台机器均有/usr/sparkdir            /hadoop                    /hadoop-2.7.2            /java                    /jdk1.8.0_91            /scala                    /scala-2.11.8            /spark                    /spark-1.6.1-bin-without-hadoop.tgz

0.2 用户组、用户管理

资源:http://www.cnblogs.com/vincedotnet/p/4017574.html功能:管理组    用法:gpasswd[-a user][-d user][-A user,...][-M user,...][-r][-R]groupname    参数:        -a:添加用户到组        -d:从组删除用户        -A:指定管理员        -M:指定组成员和-A的用途差不多        -r:删除密码        -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组    备注:为了便于权限分配和管理,在                Ubuntu16Master增加用户组spark并将baoling加入该用户组                Ubuntu16Slave1增加用户组spark并将baoling加入该用户组                Ubuntu16Slave2增加用户组spark并将baoling加入该用户组                sudo groupadd spark / sudo usermod -a -G spark baoling        相关命令:                groupdel                gpasswd

0.3 资源下载汇总

hadoop-2.7.2    http://mirrors.hust.edu.cn/apache/hadoop/jdk-8u91-linux-x64.gz    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlscala-2.11    http://www.scala-lang.org/download/2.11.8.htmlspark-1.6.1-bin-hadoop2.6    http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz

0.4 整体资源下载

链接:http://pan.baidu.com/s/1miMtCTi密码:x3w0

0.5 其他隐含说明

VMavare11Ubuntu16.04创建三台虚拟机:Ubuntu16Master、buntu16Slave1、buntu16Slave2资源解压对应目录:    hadoop-2.7.2.tar.gz                              -->/usr/sparkdir/hadoop/    jdk-8u91-linux-x64.gz                            -->/usr/sparkdir/java/    scala-2.11.8.tgz                                 -->/usr/sparkdir/scala/    spark-1.6.1-bin-without-hadoop.tgz               -->/usr/sparkdir/spark/

一、安装JDK(所有机器均需要配置)

1.1 准备工作

JDK资源下载    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlJDK版本:jdk-8u91-linux-x64.gz    解压jdk-8u91-linux-x64.gz:tar -xzf jdk-8u91-linux-x64.gz /usr/sparkdir/java/

1.2 环境变量配置

全局配置文件:/etc/profile (此处使用全局)局部配置文件:~/.bashrc配置内容:    JAVA_HOME=/usr/sparkdir/java/jdk1.8.0_91 #(加黑部分是存放jdk的绝对路径)    PATH=$JAVA_HOME/bin:$PATH    CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar    export JAVA_HOME PATH CLASSPATH备注:在配置文件末尾加入以上内容,最后需要使配置文件有效(source /etc/profile OR source ~/.bashrc)配置成功与否测试:Java -version

这里写图片描述

二、安装Scala(所有机器均需要配置)

2.1 准备工作

备注    Scala的版本由Spark的版本决定,这里选择spark-1.6.1及其对应Scala版本Scala 2.11spark-1.6.1下载    http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgzscala-2.11下载    http://www.scala-lang.org/download/2.11.8.html解压Scala-2.11.8    tar -xzf scala-2.11.8.tgz /usr/sparkdir/scala/

2.2 配置内容

/etc/profileexport SCALA__HOME=/usr/sparkdir/scala/scala-2.11.8export PATH=${SCALA_HOME}/bin:$PATH

三、配置SSH免密码登录

3.1 介绍

    在集群管理和配置中有很多工具可以使用。例如,可以采用pssh等Linux工具在集群中分发与复制文件,用户也可以自己书写Shell、Python的脚步分发包。Spark的Master节点向Worker节点命令需要通过ssh进行发送,用户不希望Master每发送一次命令就输入一次密码,因此需要实现Master无密码登陆到所有Worker。Master作为客户端,要实现无密码公钥认证,连接服务端Worker。需要在Master上生成一个秘钥对,包括一个公钥和一个私钥,然后将公钥复制到Worker上。

3.2 其它只是补充

    配置成功的关键在于确保各机器的主机名和IP地址之间能正确解析。修改每台机器的/etc/hosts,如果该台机器做NameNode用,则需要在文件中添加集群中所有机器的IP地址及其对应的主机名;如果该台机器仅作DataNode用,则只需要在文件中添加本机和NameNode的IP地址及其对应的主机名。

这里写图片描述

备注:这里的Master、Slave1、Slave2等等,指的是机器的机器名(使用命令hostname可以查看本机的机器名),切记,如果不是机器名的话会出问题的,并且集群中所有结点的机器名都应该不一样

3.3 配置所有机器/etc/hosts

sudo gedit /etc/hosts添加如下内容    192.168.1.114 Master    192.168.1.118 Slave1    192.168.1.130 Slave2

3.4 配置主机名/etc/hostname

sudo gedit /etc/hostname添加如下内容    Master    <-- Ubuntu16Master    Slave1    <-- Ubuntu16Slave1    Slave2    <-- Ubuntu16Slave2Slave1  Slave2节点上    建立文件夹        ~/        mkdir .ssh

3.5 Master节点上

1)测试是否能够无密码登录本机    ssh localhost    备注:如果没有安装openssh-server将出现如下提示“ ssh : connect to host localhost port 22:Connection refused ”, 所以安装openssh-server即可    sudo apt-get install openssh-server2)Master生成秘钥对,Master的公钥id_rsa.pub需要传送给Slave1、Slave2,从而实现Master无密码登录Slave    ssh-keygen -t rsa    生成秘钥过程中会出现提示信息,按Enter即可

这里写图片描述

3)把Master上的~/.ssh/id_rsa.pub文件追加到Slave1Slave2的~/.ssh/authorized_keys    首先将master公钥id_rsa.pub传送到Slave1Slave2的~/.ssh/        sudo scp id_rsa.pub  baoling@Slave1:/home/baoling/.ssh/        sudo scp id_rsa.pub  baoling@Slave2:/home/baoling/.ssh/    然后分别在Slave1Slave2上将~/.ssh/id_rsa.pub追加或是复制到~/.ssh/authorized_keys        cp id_rsa.pub authorized_keys        或        cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys    备注:配置完毕,如果Master仍然不能访问Worker,可以修改Worker的authorized_keys文件的权限,命令为 chmod 600 ~/.ssh/authorized_keys

四、安装Hadoop

4.1 准备工作

hadoop-2.7.2下载    http://mirrors.hust.edu.cn/apache/hadoop/解压hadoop-2.7.2.tar.gz    tar -zxf hadoop-2.7.2.tar.gz /usr/sparkdir/hadoop/备注:sudo chown -R baoling:spark /usr/sparkdir/hadoop

4.2 配置环境变量

/etc/profile    export HADOOP_HOME=/usr/sparkdir/hadoop/hadoop-2.7.2    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    #export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native    #export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"     #export JAVA_HOME=/usr/sparkdir/hadoop/hadoop-2.7.2

4.3 编辑配置文件

进入/usr/sparkdir/hadoop/hadoop-2.7.2/etc/hadoop/进行如下配置(涉及文件包括:hadoop-env.sh、core-site.xml、yarn-site.xml、mapred-site.xml)1)配置hadoop-env.sh文件    export JAVA_HOME=/usr/sparkdir/java/jdk1.8.0_912)配置core-site.xml文件<configuration>    /*这里的值指的是默认的HDFS路径*/    <property>        <name>fs.defaultFS</name>        <value>hdfs://Master:9000</value>    </property>    /*缓冲区大小: io.file.buffer.size默认是4KB*/    <property>        <name>io.file.buffer.size</name>        <value>131072</value>    </property>    /*临时文件夹路径*/    <property>        <name>hadoop.tmp.dir</name>        <value>file:/usr/sparkdir/temp</value>        <description> Abase for other temporary directories </description>    </property>    <property>        <name>hadoop.proxyuser.hduser.hosts</name>        <value>*</value>    </property>    <property>        <name>hadoop.proxyuser.hduser.groups</name>        <value>*</value>    </property></configuration>3)配置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.ShuffleHandler</value>    </property>    /*resourceManager的地址*/    <property>        <name>yarn.resourcemanager.address</name>        <value>Master:18040</value>    </property>    /*调度器的端口*/    <property>        <name>yarn.resourcemanager.scheduler.address</name>        <value>Master:18030</value>    </property>    /*resource-tracker端口*/    <property>        <name>yarn.resourcemanager.resource-tracker.address</name>        <value>Master:8031</value>    </property>    /*resourcemanager管理器端口*/    <property>        <name>yarn.resourcemanager.admin.address</name>        <value>Master:8033</value>    </property>    /*ResourceManager 的Web端口、监控 job 的资源调度*/    <property>        <name>yarn.resourcemanager.webapp.address</name>        <value>Master:8088</value>    </property></configuration>4)配置mapred-site.xml文件备注    看到的是mapred-site.xml.template,因此需要复制一份 --> sudo cp mapred-site.xml.template  mapred-site.xml^-_-^发现只有读的权限,因此需要    sudo chown -R baoling:spark /usr/sparkdir/hadoop/hadoop-2.7.2/etc/hadoop/mapred-site.xml<configuration>    /*hadoop对map-reduce运行矿建一共提供了3种实现,在mapred-site.xml中通过“mapreduce.framework.name”这个属性来设置为"classic"."yarn"或者“local”*/    <property>        <name>mapreduce.framework.name</name>        <value>yarn</value>    </property>    /*MapReduce JobHistory Server地址*/    <property>        <name>mapreduce.jobhistory.address</name>        <value>Master:10020</value>    </property>    /*MapReduce JobHistory Server web UI 地址*/    <property>        <name>mapreduce.jobhistory.webapp.address</name>        <value>Master:19888</value>    </property>    <property>         <name>mapred.job.tracker</name>        <value>Master:9001</value>    </property></configuration>

4.4 创建namenode和datanode目录,并配置其相应路径

1)创建namenode和datanode目录/usr/spark        /hdfs            /namenode            /datanodecd /usr/sparkdirsudo mkdir /hdfscd ./hdfssudo mkdir namenodesudo mkdir datanode2)执行命令后,再次回到/usr/sparkdir/hadoop/hadoop-2.7.2,配置hdfs-site.xml文件<configuration>    /*配置主节点名和端口*/    <property>        <name>dfs.namenode.secondary.http-address</name>        <value>Master:9001</value>    </property>    /*配置从节点和端口号*/    <property>        <name>dfs.namenode.name.dir</name>        <value>file:/usr/sparkdir/hdfs/namenode</value>    </property>    /*配置datanode的数据存储目录*/    <property>        <name>dfs.datanode.data.dir</name>        <value>file:/usr/sparkdir/hdfs/datanode</value>    </property>    /*配置副本数*/    <property>        <name>dfs.replication</name>        <value>3</value>    </property>    /*将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS,LISTFILESTATUS等需要列出文件,文件夹状态的命令,因为这些信息都是由namenode保存的*/    <property>        <name>dfs.webhdfs.enabled</name>        <value>true</value>    </property></configuration>备注:以上参数配置仅供Hadoop平台搭建学习之用,或有许多纰漏,请读者自行参见“Apache Hadoop-2.7.2官方使用文档”http://hadoop.apache.org/docs/current/index.html

4.5 配置Master和Slave文件

1)master文件负责配置主节点的主机名备注    最开始没有master文件,需创建 --> sudo gedit master#Master为主节点主机名Master2)配置slaves文件添加从节点主机名#Slave为从节点主机名Slave1Slave2Hadoop文件复制    不安全的做法    Master:         sudo chown -R baoling:spark /usr/sparkdir/        sudo chmod -R 777 /usr/sparkdir/    Slava1:         sudo chown -R baoling:spark /usr/sparkdir/        sudo chmod -R 777 /usr/sparkdir/    Slava2:         sudo chown -R baoling:spark /usr/sparkdir/        sudo chmod -R 777 /usr/sparkdir/    Master:        sudo scp -r /usr/sparkdir  baoling@Slave1:/usr/        sudo scp -r /usr/sparkdir  baoling@Slave2:/usr/    备注:当然也可以Hadoop所有文件通过pssh发送到各个节点(暂时没有去配置)Think Time(在Slave1和Slave2节点还遗漏了什么?)    在Slave1和Slaves的/etc/profile文件里没有对jdk、scala、hadoop进行配置        sudo gedit /etc/profile    文件末尾增加如下内容:    #JDK Configuration        JAVA_HOME=/usr/sparkdir/java/jdk1.8.0_91 #Please modify JAVA_HOME        PATH=$JAVA_HOME/bin:$PATH        CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/jre/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar        export JAVA_HOME PATH CLASSPATH    #SCALA Configuration        export SCALA__HOME=/usr/sparkdir/scala/scala-2.11.8 #Please modify SCALA_HOME        export PATH=${SCALA_HOME}/bin:$PATH    #HADOOP Configuration        export HADOOP_HOME=/usr/sparkdir/hadoop/hadoop-2.7.2        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    #综合起来配置        export JAVA_HOME=/usr/sparkdir/java/jdk1.8.0_91        export JRE_HOME=${JAVA_HOME}/jre        export SCALA_HOME=/usr/sparkdir/scala/scala-2.11.8        export HAD00P_HOME=/usr/sparkdir/hadoop/hadoop-2.7.2        export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib        export PATH=${JAVA_HOME}/bin:${SCALA_HOME}/bin:${HAD00P_HOME}/bin:${HAD00P_HOME}/sbin:$PATH    格式化Namenode(/usr/sparkdir/hadoop/hadoop-2.7.2/目录下)        ./bin/hadoop namenode -format            OR        hadoop/namenode-format    启动Hadoop (/usr/sparkdir/hadoop/hadoop-2.7.2/目录下)        ./sbin/start-all.sh

这里写图片描述

4.6 错误备注

查看日志/usr/sparkdir/hadoop/hadoop-2.7.2/logs/    hadoop-baoling-namenode-Master.log    yarn-baoling-resourcemanager-Master.log    yarn-baoling-resourcemanager-Master.log(通过查询发现如下三个启动问题)    (1) ERROR    org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Returning, interrupted : java.lang.InterruptedException    (2) ERROR    org.apache.hadoop.security.token.delegation.AbstractDelegationTokenSecretManager: ExpiredTokenRemover received java.lang.InterruptedException: sleep interrupted    (3) FATAL    org.apache.hadoop.yarn.server.resourcemanager.ResourceManager: Error starting ResourceManager org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.BindException: Problem binding to [Master:8030] java.net.BindException: Address already in use; For more details see: http://wiki.apache.org/hadoop/BindException    解决        第一第二个错误改变/tmp权限-->sudo chmod -R 777 /tmp/        第三个错误改变yarn-site.xml的yarn.resourcemanager.address属性以及yarn.resourcemanager.scheduler.address属性,此处分别为Master:18040和Master:18030yarn-baoling-resourcemanager-Master.log    ERROR        org.apache.hadoop.hdfs.server.namenode.NameNode: RECEIVED SIGNAL 15: SIGTERM    解决        改变/tmp权限-->sudo chmod -R 777 /tmp/    hadoop-baoling-datanode-Slave1.log(通过查询发现如下启动问题)    (1)FATAL    org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to Master/192.168.1.116:9000. Exiting. yarn-baoling-nodemanager-Slave1.log    解决        http://www.cnblogs.com/kinglau/p/3796274.html    hadoop-baoling-datanode-Slave2.log(通过查询发现如下启动问题)    (1)FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to Master/192.168.1.116:9000. Exiting. yarn-baoling-nodemanager-Slave2.log    解决        http://www.cnblogs.com/kinglau/p/3796274.html    其它错误    -- process information unavailable    进入/tmp,删除名称为hsperfdata_{username}-->(此处为hsperfdata_baoling)的文件夹,然后重新启动Hadoop

4.7 查看Hadoop启动情况

jpsMaster运行情况

这里写图片描述

    Slave1运行情况        利用ssh登录Slave1并利用jps命令查看

这里写图片描述

    Slave2运行情况        利用ssh登录Slave2并利用jps命令查看

这里写图片描述

4.8 启动Hadoop (/usr/sparkdir/hadoop/hadoop-2.7.2/目录下)

./sbin/stop-all.sh运行情况

这里写图片描述

4.9 安装成功验证

查看机器集群状态    http://master:50070 OR http://192.168.1.114:5007可以看到当前的live nodes有slave1和slave2两个节点信息

这里写图片描述

备注:hadoop2.x取消jobtraker,因此也没有http://master:50030管理页面。出现Live Nodes为0,请参见http://www.linuxidc.com/Linux/2012-03/57749.htmhttp://master:8088 OR http://192.168.1.114:8088运行情况

这里写图片描述

输入以下命令上传文件到hadoop    新建HDFS文件夹/testinghadoop fs -mkdir /testing)        hadoop fs         命令可参看http://www.blogjava.net/changedi/archive/2013/08/12/402696.html        hadood fs -put /etc/profile /testing    查看50070页面的显示结果

这里写图片描述

至此,Hadoop开发平台就搭建完毕了

五、安装Spark ( 以Spark Standalone为例)

参考:http://blog.csdn.net/lovehuangjiaju/article/details/46883973

5.1 准备工作

下载spark-1.6.1-bin-hadoop2.6.tgz    http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz解压spark-1.6.1-bin-hadoop2.6.tgz    tar -zxf spark-1.6.1-bin-hadoop2.6.tgz -C /usr/sparkdir/spark/

5.2 配置工作

修改/etc/profile文件    export SPARK_HOME=/usr/sparkdir/spark/spark-1.6.1-bin-hadoop2.6    export PATH=${SPARK_HOME}/bin:${SPARK_HOME}/sbin:$PATH#综合起来配置    export JAVA_HOME=/usr/sparkdir/java/jdk1.8.0_91    export JRE_HOME=${JAVA_HOME}/jre    export SCALA_HOME=/usr/sparkdir/scala/scala-2.11.8    export HAD00P_HOME=/usr/sparkdir/hadoop/hadoop-2.7.2    export SPARK_HOME=/usr/sparkdir/spark/spark-1.6.1-bin-hadoop2.6    export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib    export PATH=${JAVA_HOME}/bin:${SCALA_HOME}/bin:${HAD00P_HOME}/bin:${HAD00P_HOME}/sbin:${SPARK_HOME}/bin:${SPARK_HOME}/sbin:$PATH备注    进入/usr/sparkdir/spark/spark-1.6.1-bin-hadoop2.6/conf    配置conf/spark-defaults.conf文件    (spark-defaults.conf.template 复制一份 spark-default.sh --> cp spark-defaults.conf.template spark-defaults.conf)        spark.master=spark://Master:7077        #hdfs://Master:9000是前面core-site.xml中定义的hs.defaultFS属性值        spark.eventLog.dir=hdfs://Master:9000/testing    备注        新建HDFS文件夹/testing            hadoop fs -mkdir /testing    配置conf/spark-env.sh文件    (spark-env.sh.template 复制一份 spark-env.sh --> cp spark-env.sh.template spark-env.sh )        export JAVA_HOME=/usr/sparkdir/java/jdk1.8.0_91        export HADOOP_CONF_DIR=/usr/sparkdir/hadoop/hadoop-2.7.2/etc/hadoop        SPARK_DRIVER_MEMORY=1000M    配置conf/slaves文件    (slaves.template 复制一份 spark-env.sh --> cp slaves.template slaves )        #加入数据节点主机名        Slave1        Slave2    复制spark-1.6.1-bin-hadoop2.6到Slave1、Slave2的/usr/sparkdir/spark/        scp -r ./spark-1.6.1-bin-hadoop2.6/ baoling@Slave1:/usr/sparkdir/spark/        scp -r ./spark-1.6.1-bin-hadoop2.6/ baoling@Slave2:/usr/sparkdir/spark/

5.3 Spark启动与关闭

(1)在Spark根目录启动Spark    ./sbin/start-all.sh

这里写图片描述

(2)关闭Spark    ./sbin/stop-all.sh

这里写图片描述

5.4 安装成功验证

jps    Master运行情况

这里写图片描述

    Slave1运行情况

这里写图片描述

    Slave2运行情况

这里写图片描述

浏览器中输入http://master:8080  OR http://192.168.1.114:8080/    运行情况

这里写图片描述

5.5 运行示例

 ./bin/run-example SparkPi 10备注    出现如下错误

这里写图片描述

根据提示进入网站    http://wiki.apache.org/hadoop/ConnectionRefused    但是这个问题没有给出答案,问题出在用户的配置(暂时这样,后面解决)成功运行后截图

这里写图片描述

5.6 集群程序运行测试

上传README.md文件到hdfs /目录    hadoop fs -put /usr/sparkdir/spark/spark-1.6.1-bin-hadoop2.6/README.md /testing顺便查看文件/testing    hadoop fs -ls /testing

这里写图片描述

    在Master节点,进入 /usr/sparkdir/spark/spark-1.6.1-bin-hadoop2.6目录,执行./bin/spark-shell,打开如下网址:    http://sparkmaster:8080后可以看到如下运行情况

这里写图片描述

    执行spark-shell截图

这里写图片描述

备注:执行的时候出现如下问题

这里写图片描述

查看对应日志发现是因为:#  Out of Memory Error    (os_linux.cpp:2627), pid=5070, tid=140020683282176(机器物理内存不足  free -m)    解决办法    http://blog.csdn.net/pengych_321/article/details/51252911输入如下语句:    val textCount = sc.textFile("/testing/README.md").filter(line => line.contains("Spark")).count()

这里写图片描述

六、快速搭建spark-1.6.1-bin-without-hadoop

6.1 下载部署包sparkdir.tar.gz

链接   http://pan.baidu.com/s/1c1PH45a密码   2jc9

6.2 创建用户及用户组、配置hosts及hostname、配置环境变量、配置ssh、新建文件夹/usr/sparkdir

(1) 创建用户及用户组(所有机器)    sudo adduser baoling   #创建用户baoling    sudo groupadd spark   #创建用户组spark    sudo usermod -a -G spark baoling   #将用户baoling加入用户组spark    相关命令:        groupdel   #删除用户组        gpasswd    #将用户从用户组中删除    备注:区分adduser、deluser、useradd、userdel    (2) 配置hosts和hostname(所有机器)        sudo gedit /etc/hosts    添加:        192.168.1.114    Master        192.168.1.118    Slave1        192.168.1.130    Slave2    备注:这里的ip是对应主机的ip,可以通过ifconfig查到,此处也不做永久ip配置    sudo gedit /etc/hostname    在各Ubuntu分别添加:        Master --> Master        Slave1 -->  Slave1        Slave2 -->  Slave2    (3) 配置环境变量(所有机器)        sudo gedit /etc/profile        export JAVA_HOME=/usr/sparkdir/java/jdk1.8.0_91        export JRE_HOME=${JAVA_HOME}/jre        export SCALA_HOME=/usr/sparkdir/scala/scala-2.11.8        export HAD00P_HOME=/usr/sparkdir/hadoop/hadoop-2.7.2        export SPARK_HOME=/usr/sparkdir/spark/spark-1.6.1-bin-hadoop2.6        export CLASS_PATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib                export PATH=${JAVA_HOME}/bin:${SCALA_HOME}/bin:${HAD00P_HOME}/bin:${HAD00P_HOME}/sbin:${SPARK_HOME}/bin:${SPARK_HOME}/sbin:$PATH    (4) 配置ssh(所有机器)        在Master生成秘钥            ssh-keygen -t rsa        在各个Slave创建文件夹~/.ssh            mkdir ~/.ssh        在Master将秘钥传输到各个Slave(此时需要输入密码)            sudo scp id_rsa.pub baoling@Slave1:/home/baoling/.ssh/            sudo scp id_rsa.pub baoling@Slave2:/home/baoling/.ssh/        在所有机器执行如下命令             cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys    (5) 新建文件夹/usr/sparkdir(所有机器)        sudo mkdir /usr/sparkdir        sudo chown -R baoling:spark /usr/sparkdir        sudo chmod -R 777 /usr/sparkdir

6.3 在Master解压sparkdir.tar.gz到/usr/、传送到Slave

1、解压(Master)    sudo tar -zxf ./sparkdir.tar.gz -C /usr2、传送到Slave(在Master)    scp -r /usr/sprkdir baoling@Slave1:/usr/    scp -r /usr/sprkdir baoling@Slave2:/usr/

6.4 测试

!
1 0