spark安装_Ubuntu16.04 多节点集群的 Spark 及 Hadoop HDFS 安装、配置及运行(一)

80ee666fe92de6e76ef467a499bccbae.png

0x00 前言

本系列文章利用多台机器建立 HDFS 以及 Spark 服务。若你只需要使用 Spark,可以不必额外进行 Hadoop 的安装,但由于笔者有 HDFS + Spark 的需求,而且 HDFS 是在 Hadoop 里面,所以把 Hadoop 也一并装上。

本文所示范的例子使用的是 Hadoop2.7 + Spark2.4。

0x01 JAVA 版本

要配置 HDFS 或使用 Hadoop 的其他服务时我们首先要先注意 Java 的版本,因为笔者在跑 HiBench 的时候使用 Maven 编译发现编译错误,在查资料之后发现原来许多人使用 OpenJDK 都会发生不同的错误,而且推荐使用 Oracle JDK。为了减少你以后在 Hadoop 上会踩上的坑,还是建议先替换到 Oracle JDK。

然而,由于 Oracle Java 的 License 有所变更的缘故,故网上大部分有关于使用 PPA 下载并安装 Oracle Java 的方法都不能用。最新的方法是到 Oracle java 的官网上进行下载。

首先我们可以对本机的 JAVA 版本进行确认

$ java -version

若本机正在使用的是 OpenJDK 版本,显示的会是类似于

openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b09)
OpenJDK 64-Bit Server VM (build 25.242-b09, mixed mode)

若本机正在使用的是 Oracle 版本,显示的会是类似于

java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

若你原来的是 OpenJDK 版本以及没有安装 Oracle JAVA,可以在官网上下载 Oracle JAVA 8

5e9cec233e9e9424f410ffe039335532.png

找到这里之后根据机器的配置下载相对应的 Oracle JAVA,然后解压缩

$ tar -xzvf jdk-8u251-linux-x64.tar.gz jdk1.8.0_251/

并把他放到你常用的安装目录下

sudo mv jdk1.8.0_251/ /opt

然后把你的 JAVA 安装到可替换的目录当中

$ sudo update-alternatives --install "/usr/bin/java" "java" ""/opt/jdk1.8.0_251/bin/java" 100

然后把你预设使用的 JAVA 换成 Oracle JAVA

$ sudo update-alternatives --set java /opt/jdk1.8.0_251/bin/java

然后现在看看 JAVA 就可以看到替换之后的版本

$ java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

以及根据你的目录在 ~/.bashrc 中设置 $JAVA_HOME,在随后的 Spark 及 Hadoop 会用到

export JAVA_HOME=/usr

这就完成了 JAVA 的替换。

0x02 Hadoop 安装

首先我们一样需要取得 Hadoop 和压解缩,

$ wget https://archive.apache.org/dist/hadoop/common/hadoop-
$ tar zxf hadoop-2.7.0.tar.gz

然后可以选择把 Hadoop 放到你常用的安装目录下,例如:

$ sudo mv hadoop-2.7.0 /usr/local/hadoop

若你希望能够更方便的使用 hadoop 的命令,可以选择把 Hadoop 的 bin/ 加到本机的 $PATH中,在例子中笔者把 Spark 以及 Hadoop 的 bin 目录都加入了 ~/.bashrc上的$PATH

$ export PATH="/usr/local/spark/bin:/usr/local/hadoop/bin:$PATH"
$ source ~/.bashrc

然后输入 hadoophdfs 验证安装是否成功。

$ hadoop 

Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
  CLASSNAME            run the class named CLASSNAME
 or
  where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar <jar>            run a jar file
                       note: please use "yarn jar" to launch
                             YARN applications, not this command.
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp <srcurl> <desturl> copy file or directories recursively
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
  credential           interact with credential providers
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
  trace                view and modify Hadoop tracing settings

Most commands print help when invoked w/o parameters.
$ hdfs

Usage: hdfs [--config confdir] [--loglevel loglevel] COMMAND
       where COMMAND is one of:
  dfs                  run a filesystem command on the file systems supported in Hadoop.
  classpath            prints the classpath
  namenode -format     format the DFS filesystem
  secondarynamenode    run the DFS secondary namenode
  namenode             run the DFS namenode
  journalnode          run the DFS journalnode
  zkfc                 run the ZK Failover Controller daemon
  datanode             run a DFS datanode
  dfsadmin             run a DFS admin client
  haadmin              run a DFS HA admin client
  fsck                 run a DFS filesystem checking utility
  balancer             run a cluster balancing utility
  jmxget               get JMX exported values from NameNode or DataNode.
  mover                run a utility to move block replicas across
                       storage types
  oiv                  apply the offline fsimage viewer to an fsimage
  oiv_legacy           apply the offline fsimage viewer to an legacy fsimage
  oev                  apply the offline edits viewer to an edits file
  fetchdt              fetch a delegation token from the NameNode
  getconf              get config values from configuration
  groups               get the groups which users belong to
  snapshotDiff         diff two snapshots of a directory or diff the
                       current directory contents with a snapshot
  lsSnapshottableDir   list all snapshottable dirs owned by the current user
                                                Use -help to see options
  portmap              run a portmap service
  nfs3                 run an NFS version 3 gateway
  cacheadmin           configure the HDFS cache
  crypto               configure HDFS encryption zones
  storagepolicies      list/get/set block storage policies
  version              print the version

Most commands print help when invoked w/o parameters.

若出现以上的 help 目录,代表安装已完成。

0x03 Spark 安装

Spark 的下载及安装也和 Hadoop 无异,我们需要先下载 Scala

$ sudo apt install scala -y

然后利用 wget 进行下载及解压缩

$ wget https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
$ tar xvf spark-*

放到你常用的下载目录

$ sudo mv spark-2.4.0-bin-hadoop2.7 /usr/local/
$ cd /usr/local/

若你有多个同时存在于不同版本 Spark 的需要,你可以用下方式建立链结,便于替换

sudo ln -s spark-2.4.0-bin-hadoop2.7/ spark

$SPARK_HOME 加到 ~/.bashrc中,同时亦可以和 Hadoop 一样把 bin 目录加到$PATH

export SPARK_HOME=/usr/local/spark
export PATH="/usr/local/spark/bin:/usr/local/hadoop/bin:$PATH"
$ source ~/.bashrc

然后就可以验证 Spark 的使用,若出现以下结果就是正常安装了

$ spark-shell

2020-05-18 17:04:48 WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://worker1:4040
Spark context available as 'sc' (master = local[*], app id = local-1589792692425).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _ / _ / _ `/ __/  '_/
   /___/ .__/_,_/_/ /_/_   version 2.4.0
      /_/

Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_251)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

0x04 总结

在本文(一)中介绍了 JAVA 版本选用以及 Hadoop 和 Spark 的安装,在接下来的篇幅(二)中会对如何在多节点机器上进行 HDFS 和 Spark 配置,以及简单范例的运行进行介绍。


本文首發於 laochanlam 个人博客,转载请注明出处。

个人主页 - laochanlam​blog.laochanlam.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值