赞
踩
正确而快速的安装和配置spark,是初学spark遇到的第一个拦路虎。本指南以简明扼要的方式展示全部流程,详细步骤可参照厦门大学大数据实验室系列教程:大数据软件安装和基础编程实践指南(2020年6月版)_厦大数据库实验室博客。
依据先后顺序,基本分为以下4个步骤:
JDK 1.8下载、安装和配置
Hadoop 3.2.4下载、安装和配置
Spark 3.3.2下载、安装和配置
本教程默认已经安装Ubuntu ,若没有
参考资料:在Windows中使用VirtualBox安装Ubuntu虚拟机(2020年7月版本)_厦大数据库实验室博客 (xmu.edu.cn)
注意,为后续操作方便,如果Ubuntu中没有hadoop账号,先创建该账号。
创建账号的shell指令:sudo useradd -m hadoop -s /bin/bash,然后输入初始密码即可。若一开始无需密码,后续可通过以下命令设置密码:sudo passwd hadoop。建议密码同样设置为hadoop。
然后为 hadoop 用户增加管理员权限,方便后续其它组件的安装和部署,指令:sudo adduser hadoop sudo
注意:后续步骤全部使用hadoop账户登录进行操作。本步骤完成后,注销当前账户,切换为hadoop账户登录。
下载:jdk-8u202-linux-x64.tar.gz,下载源建议使用国内华为云镜像:Index of java-local/jdk/8u202-b08 (huaweicloud.com),选择jdk-8u202-linux-x64.tar.gz,
下载完成后会在Downloads文件夹找到,在该文件夹内打开终端
首先新建解压缩文件夹:sudo mkdir /usr/lib/jvm
然后解压缩JDK安装包:sudo tar -zxf jdk-8u202-linux-x64.tar.gz -C /usr/lib/jvm,在jvm目录下,会看到jdk1.8.0_202的文件夹,里面就是JDK。
接下来修改环境变量配置文件,先打开环境配置文件:vim ~/.bashrc(vim报错就sudo install vim安装)
在这个文件的开头位置,添加如下几行内容:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_202
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存文件,退出。
最后,使配置文件立即生效,命令:source ~/.bashrc
测试JDK安装是否成功:java –version,如正常线上版本号,则说明安装成功。
下载:hadoop-3.3.6.tar.gz
下载源建议使用清华大学镜像:Index of /apache/hadoop/common/hadoop-3.3.6 (tsinghua.edu.cn),选择 hadoop-3.3.6.tar.gz
非分布式模式(本地模式)安装:
只需要将hadoop安装包解压缩到指定路径,无需进行其他配置即可运行非分布式模式(本地模式)。
首先解压缩:sudo tar -zxf hadoop-3.3.6.tar.gz -C /usr/local # 解压到/usr/local中
切换到解压缩后的目录:cd /usr/local/
修改文件夹:sudo mv ./hadoop-3.3.6/ ./hadoop # 将文件夹名改为hadoop
修改文件权限:sudo chown -R hadoop ./hadoop # 修改文件权限
切换到安装目录:cd /usr/local/hadoop
测试hadoop安装是否成功:./bin/hadoop version #Hadoop
成功则会显示 Hadoop 版本信息
伪分布式模式配置:
安装SSH
集群、单节点模式都需要用到 SSH 登陆,Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:
sudo apt-get install openssh-server
安装后,可以使用如下命令登陆本机:
ssh localhost
此时会有如下提示(SSH首次登陆提示),输入 yes 【注意:一定要输入 yes,而不是直接按回车!!】。然后按提示输入密码 hadoop,这样就登陆到本机了。
配置SSH无密码登陆
上述登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit # 退出刚才的 sshlocalhost
cd ~/.ssh/ # 若没有该目录,请先执行一次sshlocalhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >>./authorized_keys # 加入授权
之后每次用 ssh localhost 登陆,就不想要输密码了,直接进入。
Hadoop伪分布式配置
Hadoop 的配置文件位于/usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。
修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit /usr/local/hadoop/etc/hadoop/core-site.xml),将当中的
<configuration>
</configuration>
修改为下面配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
同样的,修改配置文件 hdfs-site.xml:
<configuration>
<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>
</configuration>
配置完成后,执行 NameNode 的格式化:
cd /usr/local/hadoop
./bin/hdfs namenode -format
成功的话,会看到“successfully formatted”的提示,最后是“SHUTDOWN_MSG: Shutting down NameNode at hadoop/127.0.1.1”信息。
启动Hadoop
接着开启 NameNode 和 DataNode 守护进程。Shell 命令:
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
若出现如下SSH提示,输入yes即可。
启动完成后,可以通过命令 jps 来判断是否成功启动,
jps #判断是否成功启动
下载源建议使用清华大学镜像:
Index of /apache/spark/spark-3.5.1 (tsinghua.edu.cn),选择 spark-3.5.1-bin-without-hadoop.tgz
安装:
只需要将spark安装包解压缩到指定路径,然后修改配置文件即可。
解压缩到 /usr/local/ 命令:
sudo tar -zxf spark-3.5.1-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
更改spark文件夹名称,并修改文件权限,将hadoop设置为文件夹所有者:
sudo mv ./spark-3.5.1-bin-without-hadoop/ ./spark #更改文件夹名称,简单好记一些
sudo chown -R hadoop:hadoop ./spark # 此处的 hadoop 为你的用户名
配置:
修改Spark的配置文件spark-env.sh
cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
使用gedit编辑spark-env.sh文件命令:
gedit ./conf/spark-env.sh #如果没有gedit组件,可直接安装:sudo apt-get install gedit
在第一行添加以下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
配置完成后就可以直接使用,不需要像Hadoop运行启动命令。
运行Spark自带的示例
验证Spark是否安装成功
cd /usr/local/spark
bin/run-example SparkPi #输出信息较多,不易查看。但只要能正常输出,说明配置成功
或者通过 grep 命令进行过滤,简化输出:
bin/run-example SparkPi 2>&1 | grep"Pi is"
输出结果类似为: Pi is roughly 3.1446957234786175
上述流程成功执行就完成了spark的一个基本的配置,熟悉Ubuntu系统的一些基础的操作指令问题就不会很大,重在实践慢慢的就会熟悉。
最后对可能存在的问题做个建议
运行过程中存在问题首先看指令有没有打错,其次是安装路径,文件包名字有没有对应上
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。