在Ubuntu里搭建spark环境
注意:1.搭建环境:Ubuntu64位,Linux(也有Windows的,我还没空试)
2.一般的配置jdk、Scala等的路径环境是在/etc/profile里配置的,我自己搭建的时候发现我自己在profile配置环境会有问题,比如说:我配置了spark,source了profile,启动spark是没问题的,但是当我想再次启动spark的时候,
就会启动失败,需要再source一遍profile,所以我把所有的需要配置环境的命令都写在了 ~/.bashrc文件里,只需要source一遍就好了。
3.我只是菜鸟,如果有什么地方说错了,大家一定要跟我说,我改。或者大家有更好的办法,麻烦教我一下,谢谢!
一、设置SSH免密登入:
(一般Ubuntu自带客户端了,所以只需要装服务端即可。可通过命令:dpkg -l | grep ssh 查看是否安装有服务端和客户端,安装客户端命令:sudo apt-get install opendssh-client)
1、安装服务端,安装命令: sudo apt-get install openssh-server,可能会需要输入用户密码,输入按回车继续。可能它还会询问是否继续,输入 Y 回车继续。安装成功后,使用命令 ssh localhost 测试安装的SSH是否能正常连接,连接需要输入用户的密码
2、设置免密码登录步骤:
(1)生成密钥,命令:ssh-keygen。执行过程中会要求你输入连接用的密码,不要输入任何东西,直接回车。系统会在~/.ssh目录生成密钥文件(id_rsa 私钥,id_rsa.pub公钥),执行成功的结果如图所示。
(2)将生成公钥的内容添加到authorized_keys文件中,命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3)修改authorized_keys和~/.ssh文件权限,命令:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
(4)设置成功后,可以验证一下是否成功,命令:ssh localhost ,如果不需要输入用户密码,即为设置成功。
二、JDK的安装与配置
1、解压JDK的安装包,解压命令:tar -zvxf jdk-8u181-linux-x64.tar.gz -C /opt
2、配置环境变量,在 /etc/profile 文件中添加如下内容:
export JAVA_HOME=/opt/jdk1.8.0_181 # 配置JAVA_HOME
export CLASS_PATH=/opt/jdk1.8.0_181/lib # 配置类路径
export PATH=$PATH:$JAVA_HOME/bin # 添加bin路径到PATH,添加后可以在命令行中直接使用java相关命令
3、重新执行刚修改的/etc/profile文件,使配置的环境立即生效,命令: source /etc/profile
4、JDK安装配置完成之后,在命令行输入命令:java –version,检查JDK是否安装无误
三、Scala的安装与配置
1、 解压Scala的安装包,解压命令:tar -zvxf scala-2.11.12.tgz -C /opt
2、 配置环境变量,在 /etc/profile 文件中添加如下内容:
export SCALA_HOME=/opt/scala-2.11.12 # 配置SCALA_HOME
export PATH=$PATH:$SCALA_HOME/bin # 添加bin目录到PATH
3、重新执行刚修改的/etc/profile文件,使配置的环境立即生效,命令: source /etc/profile
4、Scala安装配置完成之后,在命令行输入命令:scala,检查Scala是否安装无误。
四、Spark的安装与配置
1、解压Spark的安装包,解压命令: tar -zvxf spark-2.3.3-bin-hadoop2.7.tgz -C /opt
2、 配置环境变量,在 /etc/profile 文件中添加如下内容:
export SPARK_HOME=/opt/spark-2.3.3-bin-hadoop2.7 # 配置SPARK_HOME
export PATH=$PATH:$SPARK_HOME/bin # 添加bin目录到PATH
3、重新执行刚修改的/etc/profile文件,使配置的环境立即生效,命令: source /etc/profile
4、修改Spark配置文件
(1)复制模板文件,将在Spark的conf目录中的spark-env.sh.template、log4j.properties.template、slaves.template三个文件拷贝为spark-env.sh、log4j.properties、slaves到同一目录下(conf文件夹),注意把.template去掉,然后Spark启动时就会对文件中的配置项进行读取,否则找不到配置。命令如下:
cd /opt/spark-2.3.3-bin-hadoop2.7/conf // 进入到配置文件夹中
sudo cp spark-env.sh.template spark-env.sh // Spark环境相关
sudo cp log4j.properties.template log4j.properties // Spark日志相关
sudo cp slaves.template slaves // Spark集群节点
5、设置spark-2.3.3-bin-hadoop2.7文件夹可读可写可执行权限,命令:
cd /opt
sudo chmod 777 spark-2.3.3-bin-hadoop2.7/
6、Spark已经安装配置完成了,进入到Spark目录中的sbin路径下,运行 ./start-all.sh启动集群,测试一下刚刚安装的Spark。
7、命令行输入spark-shell来检查spark是否安装无误,成功运行的画面如图:(spark默认是用Scala语言,如果想用python编写看第9个步骤。)
8、Spark集群启动完成后打开浏览器输入地址:localhost:8080,即可查看集群的UI界面,没有出现UI界面,就返回去检查一下之前环境配置是否有问题,spark是否start-all。
9、可以在命令行直接启动pyspark,命令为 pyspark,启动成功后的画面如图:
以上搭建的环境只能让你在命令行模式编写spark,等我过段时间有空了再教大家在pycharm里搭建spark。