您的位置:首页 > 运维架构

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

2016-07-15 22:44 483 查看

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.html scala-2.11 http://www.scala-lang.org/download/2.11.8.html spark-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[/code] 

0.4 整体资源下载

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


0.5 其他隐含说明

VMavare11
Ubuntu16.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.html JDK版本: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.11
spark-1.6.1下载 http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz scala-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/profile
export SCALA__HOME=/usr/sparkdir/scala/scala-2.11.8
export 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    <-- Ubuntu16Slave2

Slave1 和 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-server

2)Master生成秘钥对,Master的公钥id_rsa.pub需要传送给Slave1、Slave2,从而实现Master无密码登录Slave
ssh-keygen -t rsa
生成秘钥过程中会出现提示信息,按Enter即可




3)把Master上的~/.ssh/id_rsa.pub文件追加到Slave1和Slave2的~/.ssh/authorized_keys
首先将master公钥id_rsa.pub传送到Slave1和Slave2的~/.ssh/
sudo scp id_rsa.pub  baoling@Slave1:/home/baoling/.ssh/
sudo scp id_rsa.pub  baoling@Slave2:/home/baoling/.ssh/
然后分别在Slave1和Slave2上将~/.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 baol
163ad
ing: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_91

2)配置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
/datanode

cd /usr/sparkdir
sudo mkdir /hdfs
cd ./hdfs
sudo mkdir namenode
sudo mkdir datanode

2)执行命令后,再次回到/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为主节点主机名
Master

2)配置slaves文件添加从节点主机名
#Slave为从节点主机名
Slave1
Slave2

Hadoop文件复制
不安全的做法
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:18030
yarn-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启动情况

jps

Master运行情况




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.htm
 http://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后可以看到如下运行情况[/code] 


执行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 /usr

2、传送到Slave(在Master)
scp -r /usr/sprkdir baoling@Slave1:/usr/
scp -r /usr/sprkdir baoling@Slave2:/usr/


6.4 测试

略!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spark hadoop scala