hadoop+spark集群搭建入门

忽略元数据末尾
回到原数据开始处

Hadoop+spark集群搭建 

说明:

本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个作为Master节点,另一个作为Slave节点,由于spark依赖scala,所以需要安装scala

搭建步骤:

一:安装jdk
二:安装hadoop集群(http://www.powerxing.com/install-hadoop-cluster/也可参考这个大家hadopp集群)
1:选定一台机器作为 Master
2:在 Master 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境(java环境安装参考一:安装jdk)
3:在 Master 节点上安装 Hadoop,并完成配置
4:在其他 Slave 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境(java环境安装参考一:安装jdk)
5:将 Master 节点上的 /usr/local/hadoop 目录复制到其他 Slave 节点上
6:在 Master 节点上开启 Hadoop
7:执行分布式实例
三:安装Scala
四:安装Spark

一:安装jdk(每个节点都需要安装)

Java 环境可选择 Oracle 的 JDK,或是 OpenJDK,现在一般 Linux 系统默认安装的基本是 OpenJDK,如centos6.4就默认安装了OpenJDK1.7.
按 http://wiki.apache.org/hadoop/HadoopJavaVersions 中说的,Hadoop 在 OpenJDK 1.7 下运行是没问题的。需要注意的是,CentOS 6.4 中默认安装的只是 Java JRE,而不是 JDK,为了开发方便,我们还是需要通过 yum 进行安装 JDK,安装过程中会让输入 [y/N],输入 y 即可:
sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
通过上述命令安装 OpenJDK,默认安装位置为 /usr/lib/jvm/java-1.7.0-openjdk(该路径可以通过执行 rpm -ql java-1.7.0-openjdk-devel | grep ‘/bin/javac’ 命令确定,执行后会输出一个路径,除去路径末尾的 “/bin/javac”,剩下的就是正确的路径了)。OpenJDK 安装后就可以直接使用 java、javac 等命令了。
接着需要配置一下 JAVA_HOME 环境变量,为方便,我们在 ~/.bashrc 中进行设置
vim ~/.bashrc
在文件最后面添加如下单独一行(指向 JDK 的安装位置),并保存:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk
使环境变量生效
source ~/.bashrc
检验是否设置正确
echo $JAVA_HOME # 检验变量值
java -version
$JAVA_HOME/bin/java -version # 与直接执行 java -version 一样
如果设置正确的话,$JAVA_HOME/bin/java -version 会输出 java 的版本信息,且和 java -version 的输出结果一样,如下图所示:
《hadoop+spark集群搭建入门》  

二:安装hadoop集群

1:创建hadoop用户(每个节点都需要安装)

useradd -m hadoop -s /bin/bash #创建hadoop用户,并使用/bin/bash 作为shell
passwd hadoop #修改hadoop密码
按提示输入两次密码,可简单的设为 “123456”(密码随意指定,若提示”无效的密码,过于简单”则再次输入确认就行)
可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题,执行:
visudo 
如下图,找到 root ALL=(ALL) ALL 这行(应该在第98行,可以先按一下键盘上的 ESC 键,然后输入 :98 (按一下冒号,接着输入98,再按回车键),可以直接跳到第98行 ),然后在这行下面增加一行内容:hadoop ALL=(ALL) ALL (当中的间隔为tab),如下图所示:
《hadoop+spark集群搭建入门》

2:安装ssh、配置ssh无密码登陆(每个节点都需要安装)

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:
《hadoop+spark集群搭建入门》
返回结果若如上图,表示包含了SSH client 跟 SSH server,则不需要再安装。
若需要安装,则可以通过 yum 进行安装(安装过程中会让你输入 [y/N],输入 y 即可):

  1. sudo yum install openssh-clients
  2. sudo yum install openssh-server

接着执行如下命令测试一下 SSH 是否可用:

  1. ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 123456,这样就登陆到本机了
《hadoop+spark集群搭建入门》
但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先输入 exit 退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

  1. exit # 退出刚才的 ssh localhost
  2. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
  3. ssh-keygen -t rsa # 生成密钥对,会有提示,都按回车就可以
  4. cat id_rsa.pub >> authorized_keys # 加入授权
  5. chmod 600 ./authorized_keys # 修改文件权限

http://www.powerxing.com/install-hadoop-in-centos/javascript:void(0);http://www.powerxing.com/install-hadoop-in-centos/javascript:void(0);注:
含义在 Linux 系统中, 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释。
此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。
《hadoop+spark集群搭建入门》

3:安装java环境(参考一:安装jdk,每个节点都需要安装)

4:安装hadoop2(Master节点安装)

Hadoop 2 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者http://mirrors.cnnic.cn/apache/hadoop/common/ 下载,本教程选择的是 2.7.2 版本,下载时请下载 hadoop-2.x.y.tar.gz这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。
下载时强烈建议也下载 hadoop-2.x.y.tar.gz.mds 这个文件,该文件包含了检验值可用于检查 hadoop-2.x.y.tar.gz 的完整性,否则若文件发生了损坏或下载不完整,Hadoop 将无法正常运行。
进入opt目录执行下面命令,下载hadoop2
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz.mds
判断文件的完整性:

  1. Cat /opt/hadoop-2.7.2.tar.gz.mds # 列出md5检验值
  2. # head -n 6 ~/下载/hadoop-2.7.1.tar.gz.mds # centos2.7.1版本格式变了,可以用这种方式输出
  3. md5sum hadoop-2.7.2.tar.gz | tr “a-z” “A-Z” # 计算md5值,并转化为大写,方便比较

若文件不完整则这两个值一般差别很大,可以简单对比下前几个字符跟后几个字符是否相等即可,如下图所示,如果两个值不一样,请务必重新下载 

《hadoop+spark集群搭建入门》 
我们选择将 Hadoop 安装至 /usr/local/ 中:

  1. sudo tar -zxf /opt/hadoop-2.7.2.tar.gz -C /usr/local # 解压到/usr/local中
  2. cd /usr/local/
  3. sudo mv ./hadoop-2.7.2/ ./hadoop # 将文件夹名改为hadoop
  4. sudo chown -R hadoop:hadoop ./hadoop # 修改文件权限

注:
相对路径与绝对路径的区别
请务必注意命令中的相对路径与绝对路径,本文后续出现的 ./bin/…,./etc/… 等包含 ./ 的路径,均为相对路径,以 /usr/local/hadoop 为当前目录。例如在 /usr/local/hadoop 目录中执行 ./bin/hadoop version 等同于执行 /usr/local/hadoop/bin/hadoop version。可以将相对路径改成绝对路径来执行,但如果你是在主文件夹 ~ 中执行./bin/hadoop version,执行的会是/home/hadoop/bin/hadoop version,就不是我们所想要的了。
到此单机式hadoop就配置完了,可以执行以下例子来感受一下hadoop的运行,Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。
在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

  1. cd /usr/local/hadoop
  2. mkdir ./input
  3. cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件
  4. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output ‘dfs[a-z.]+’
  5. cat ./output/* # 查看运行结果

若运行出错,如出现如下图提示:
《hadoop+spark集群搭建入门》 运行Hadoop实例时可能会报错
若出现提示 “WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable”,该 WARN 提示可以忽略,不会影响 Hadoop 正常运行(可通过编译 Hadoop 源码解决,解决方法请自行搜索)。
若出现提示 “INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknowHostException”,这需要执行如下命令修改 hosts 文件,为你的主机名增加IP映射:

  1. sudo vim /etc/hosts

主机名在终端窗口标题里可以看到,或执行命令 hostname 查看,如下图所示,在最后面增加一行 “127.0.0.1 dblab”:
《hadoop+spark集群搭建入门》 设置主机名的IP映射
保存文件后,重新运行 hadoop 实例,若执行成功的话会输出很多作业的相关信息,最后的输出信息如下图所示。作业的结果会输出在指定的 output 文件夹中,通过命令 cat ./output/* 查看结果,符合正则的单词 dfsadmin 出现了1次:
《hadoop+spark集群搭建入门》
注意,Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。

  1. rm -r ./output

到此单机的hadoop已经配置完成,接下来配置集群

5:集群配置

Master 节点上完成准备工作后,关闭 Hadoop (/usr/local/hadoop/sbin/stop-dfs.sh),进行后续集群配置。

(1)修改各节点主机名

为了便于区分,可以修改各个节点的主机名(在终端标题、命令行中可以看到主机名,以便区分)。在 Ubuntu/CentOS 7 中,我们在 Master 节点上执行如下命令修改主机名(即改为 Master,注意是区分大小写的):

  1. sudo vim /etc/hostname

或者用下面的命令修改主机名
《hadoop+spark集群搭建入门》
如果是用 CentOS 6.x 系统,则是修改 /etc/sysconfig/network 文件
然后执行如下命令修改自己所用节点的IP映射:

  1. sudo vim /etc/hostshttp://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

例如本教程使用两个节点的名称与对应的 IP 关系如下:
192.168.1.121 Master
192.168.1.122 Slave1
我们在 /etc/hosts 中将该映射关系填写上去即可,如下图所示(一般该文件中只有一个 127.0.0.1,其对应名为 localhost,如果有多余的应删除,特别是不能有 “127.0.0.1 Master” 这样的记录):
《hadoop+spark集群搭建入门》 Hadoop中的hosts设置
CentOS 中的 /etc/hosts 配置则如下图所示:
《hadoop+spark集群搭建入门》
修改完成后需要重启一下,重启后在终端中才会看到机器名的变化。接下来的教程中请注意区分 Master 节点与 Slave 节点的操作。 
注:
需要在所有节点上完成网络配置
如上面讲的是 Master 节点的配置,而在其他的 Slave 节点上,也要对 /etc/hostname(修改为 Slave1、Slave2 等) 和 /etc/hosts(跟 Master 的配置一样)这两个文件进行修改!
配置好后需要在各个节点上执行如下命令,测试是否相互 ping 得通,如果 ping 不通,后面就无法顺利配置成功:

  1. ping Master -c 3 # 只ping 3次,否则要按 Ctrl+c 中断
  2. ping Slave1 -c 3http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

例如我在 Master 节点上 ping Slave1,ping 通的话会显示 time,显示的结果如下图所示:
《hadoop+spark集群搭建入门》
继续下一步配置前,请先完成所有节点的网络配置,修改过主机名的话需重启才能生效。

(2)ssh无密码登陆节点

这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。
首先实现各个slave节点自己的ssh无密码登陆
然后生成 Master 节点的公匙,在 Master 节点的终端中执行(因为改过主机名,所以还需要删掉原有的再重新生成一次):

  1. cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost
  2. rm ./id_rsa* # 删除之前生成的公匙(如果有)
  3. ssh-keygen -t rsa # 一直按回车就可以http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

让 Master 节点需能无密码 SSH 本机,在 Master 节点上执行:

  1. cat ./id_rsa.pub >> ./authorized_keyshttp://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);

完成后可执行 ssh Master 验证一下(可能需要输入 yes,成功后执行 exit 返回原来的终端)。接着在 Master 节点将上公匙传输到 Slave1 节点:

  1. scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

scp 是 secure copy 的简写,用于在 Linux 下进行远程拷贝文件,类似于 cp 命令,不过 cp 只能在本机中拷贝。执行 scp 时会要求输入 Slave1 上 hadoop 用户的密码(hadoop),输入完成后会提示传输完毕,如下图所示:
《hadoop+spark集群搭建入门》 通过scp向远程主机拷贝文件
接着在 Slave1 节点上,将 ssh 公匙加入授权:

  1. mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在则忽略
  2. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  3. rm ~/id_rsa.pub # 用完就可以删掉了

http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
如果有其他 Slave 节点,也要执行将 Master 公匙传输到 Slave 节点、在 Slave 节点上加入授权这两步。
这样,在 Master 节点上就可以无密码 SSH 到各个 Slave 节点了,可在 Master 节点上执行如下命令进行检验,如下图所示:

  1. ssh Slave1

http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
《hadoop+spark集群搭建入门》
注:
如果在执行ssh无密码登陆时,出现设置完还需要输入密码,修改authorized_keys权限 chown 600

(3)配置path环境

Vim ~/.bashrc
加入一行
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
如下图所示:
《hadoop+spark集群搭建入门》
保存后执行 source ~/.bashrc 使配置生效。

(4)配置集群/分布式环境

集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 。
1): 文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,所以在伪分布式配置时,节点即作为 NameNode 也作为 DataNode。分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。
本教程让 Master 节点仅作为 NameNode 使用,因此将文件中原来的 localhost 删除,只添加一行内容:Slave1。
2):文件 core-site.xml 改为下面的配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>

  1. :文件 hdfs-site.xml,dfs.replication 一般设为 3,但我们只有一个 Slave 节点,所以 dfs.replication 的值还是设为 1

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
</configuration>

  1. :文件 mapred-site.xml (可能需要先重命名,默认文件名为 mapred-site.xml.template),然后配置修改如下:

<configuration>
<property>
<name>mapreduce.framework.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>

  1. :文件yarn-site.xml 改为下面的配置:

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!– Site specific YARN configuration properties –>
</configuration> 

(5)将Master 上的 /usr/local/Hadoop 文件夹复制到各个节点上

配置好后,将 Master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。(如果之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件)。在 Master 节点上执行:

  1. cd /usr/local
  2. sudo rm -r ./hadoop/tmp # 删除 Hadoop 临时文件
  3. sudo rm -r ./hadoop/logs/* # 删除日志文件
  4. tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先压缩再复制
  5. cd ~
  6. scp ./hadoop.master.tar.gz Slave1:/home/hadoop

在 Slave1 节点上执行:

  1. sudo rm -r /usr/local/hadoop # 删掉旧的(如果存在)
  2. sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
  3. sudo chown -R hadoop /usr/local/hadoop

http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
同样,如果有其他 Slave 节点,也要执行将 hadoop.master.tar.gz 传输到 Slave 节点、在 Slave 节点解压文件的操作。

(6)启动hadoop

首次启动需要先在 Master 节点执行 NameNode 的格式化:

  1. hdfs namenode -format # 首次运行需要执行初始化,之后不需要

CentOS系统需要关闭防火墙
CentOS系统默认开启了防火墙,在开启 Hadoop 集群之前,需要关闭集群中每个节点的防火墙。有防火墙会导致 ping 得通但 telnet 端口不通,从而导致 DataNode 启动了,但 Live datanodes 为 0 的情况。
在 CentOS 6.x 中,可以通过如下命令关闭防火墙:

  1. sudo service iptables stop # 关闭防火墙服务
  2. sudo chkconfig iptables off # 禁止防火墙开机自启,就不用手动关闭了

http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
若用是 CentOS 7,需通过如下命令关闭(防火墙服务改成了 firewall):

  1. systemctl stop firewalld.service # 关闭firewall
  2. systemctl disable firewalld.service # 禁止firew

如下图,是在 CentOS 6.x 中关闭防火墙:
《hadoop+spark集群搭建入门》 CentOS6.x系统关闭防火墙
接着可以启动 hadoop 了,启动需要在 Master 节点上进行:

  1. start-dfs.sh
  2. start-yarn.sh
  3. mr-jobhistory-daemon.sh start historyserver

http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程,如下图所示:
《hadoop+spark集群搭建入门》
在 Slave 节点可以看到 DataNode 和 NodeManager 进程,如下图所示:
《hadoop+spark集群搭建入门》
缺少任一进程都表示出错。

(7)执行分布式实例

执行分布式实例过程与伪分布式模式一样,首先创建 HDFS 上的用户目录:

  1. hdfs dfs -mkdir -p /user/hadoop

Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
将 /usr/local/hadoop/etc/hadoop 中的配置文件作为输入文件复制到分布式文件系统中:

  1. hdfs dfs -mkdir input
  2. hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input

Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
通过查看 DataNode 的状态(占用大小有改变),输入文件确实复制到了 DataNode 中,如下图所示:
《hadoop+spark集群搭建入门》
接着就可以运行 MapReduce 作业了:

  1. hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output ‘dfs[a-z.]+’

Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
运行时的输出信息与伪分布式类似,会显示 Job 的进度。
可能会有点慢,但如果迟迟没有进度,比如 5 分钟都没看到进度,那不妨重启 Hadoop 再试试。若重启还不行,则很有可能是内存不足引起,建议增大虚拟机的内存,或者通过更改 YARN 的内存配置解决。
《hadoop+spark集群搭建入门》
同样可以通过 Web 界面查看任务进度 http://master:8088/cluster,在 Web 界面点击 “Tracking UI” 这一列的 History 连接,可以看到任务的运行信息,如下图所示:
《hadoop+spark集群搭建入门》
执行完毕后的输出结果:
《hadoop+spark集群搭建入门》 MapReduce作业的输出结果
关闭 Hadoop 集群也是在 Master 节点上执行的:

  1. stop-yarn.sh
  2. stop-dfs.sh
  3. mr-jobhistory-daemon.sh stop historyserver

Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
此外,同伪分布式一样,也可以不启动 YARN,但要记得改掉 mapred-site.xml 的文件名。 

三:安装scala

wget http://downloads.typesafe.com/scala/2.11.4/scala-2.11.4.tgz?_ga=1.248348352.61371242.1418807768 下载scala tar包到/opt目录下
tar -zxf scala-2.11.4.tgz -C /usr/local/spark #解压到/usr/local/spark目录下
配置环境变量:
vim /etc/profile 在后面添加

  1. set scala environment
    export SCALA_HOME=/usr/local/spark/scala-2.11.4
    export PATH=$PATH:$SCALA_HOME/bin
    保存,然后执行source /etc/profile 使其立即生效
    scala -version #查看版本,验证是否安装成功
    《hadoop+spark集群搭建入门》 

    四:安装spark

    1:下载spark,解压spark
    2:配置环境变量
    # set spark environment
    export SPARK_HOME=/usr/local/spark/spark-1.6.0-bin-hadoop2.6
    export PATH=$PATH:$SPARK_HOME/bin
    export SPARK_EXAMPLES_JAR=$SPARK_HOME/examples/target/scala-2.11.4/spark-examples_2.11.4-1.6.0.jar 
    3:修改配置文件
    1):cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6
    2):mv spark-env.sh.template spark-env.sh
    3):vi spark-env.sh 
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.99-2.6.5.0.el7_2.x86_64 
    export SPARK_HOME=/usr/local/spark/spark-1.6.0-bin-hadoop2.6 
    export SPARK_WORKER_DIR=/usr/local/spark/spark-1.6.0-bin-hadoop2.6/work 
    export SPARK_LOG_DIR=/usr/local/spark/spark-1.6.0-bin-hadoop2.6/logs/
    export SPARK_MASTER_WEBUI_PORT=8070 
    export SPARK_WORKER_CORES=2
    export SPARK_WORKER_INSTANCES=2
    export SPARK_WORKER_MEMORY=4g
    《hadoop+spark集群搭建入门》
    4:修改slaves文件 

  2. mv slaves.template  slaves
  3. :vi slaves

添加以下内容:
Master
Slave1
5:启动spark
cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6/sbin
执行./start-all.sh命令
对应的关闭spark也是在sbin目录下,执行
      ./stop-all.sh 即可 
5:验证

  1. :在master节点上执行jps

30859 jps
30172 Master

  1. :在slave1节点上执行jps

30302 worker
30859 jps 


2 people 赞了此内容.

1 评论

  1. 使用HortonWorks 的打包版本HDP, 安装起来更方便. 

    原文作者:spark
    原文地址: https://www.cnblogs.com/wangdaijun/p/6802771.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞