安装环境:
虚拟机:VMware® Workstation 8.0.1(网络桥接)
OS:CentOS 7
JDK版本:jdk-7u79-linux-x64.tar
Scala版本:scala-2.11.7
Spark版本:spark-1.4.0-bin-hadoop2.4
用户:hadoop安装Centos时创建的,属于管理员组
第一步:配置SSH
使用hadoop登录系统,在终端运行:
yum install openssh-server
如果提示:
则是因为yum服务被占用,需要强制解锁:
rm -rf /var/run/yum.pid
终端就会联网下载安装包并自行进行安装。安装完成后输入下面指令验证22端口是否打开:
netstat -nat
确定22端口是打开的,然后检查SSH安装正确否,输入
ssh localhost
输入当前用户名和密码按回车确认,说明安装成功,同时ssh登陆需要密码。
这里重点说明一下:
Ssh配置实际上就是配置无密码访问,使用身份凭据代替密码验证,访问时只需要提供一个身份凭据即可,不需要输入密码。那么意思也就是说,每一个用户都有一个独一无二的凭据,要访问谁,就将这个凭据交给谁(即复制到人家的目录下即可)
接下来,在终端输入命令进入Hadoop账户目录:
cd /home/hadoop
再次输入:
ssh-keygen -t rsa
然后一路回车
然后我们再次进入.ssh文件夹,然后将id_rsa.pub追加到authorized_keys文件,命令如下:
cd .ssh
顺便查看下本目录下都有什么文件。Id_rsa是属于该账户的私钥,id_rsa.pub是属于该账户的公钥,就是要交出去的。
这里需要多说一句,如果一个主服务器有多个账户要配置无密码访问怎么办?
主服务器下面应该有一个叫authorized_keys 的文件,谁需要配置无密码访问,就把你的公钥追加在这个文件里即可。
cp id_rsa.pub authorized_keys
再次测试无密码登录
ssh localhost
最好是多打开几次终端,测试ssh登录,也可以重启服务测试:
service sshd restart 重启服务
service sshd start 启动服务
service sshd stop 停止服务
netstat -antp | grep sshd 查看是否启动22端口
任何时候遇到权限拒绝在命令前加上sudo 即可,如下就被拒绝了:
chkconfig sshd on设置开机启动
chkconfig sshd off 禁止SSH开机启动
第二步:配置Java、Scala、Saprk
咱们一次性将需要的软件全部复制到/home/data目录下备用。需要注销使用root登录,其他用户权限不够。
Root用户可以直接在UI下面操作,顺便解压好。
然后切换回hadoop用户(*重要)
配置Java路径:
sudo gedit /etc/profile
在最后一行回车加上:
#JAVA VARIABLES START
export JAVA_HOME=/home/data/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
#JAVA VARIABLES END
然后刷新系统配置,检查Java安装情况:
source /etc/profile
java -version
看到这个说明Java环境安装成功。
接下来配置Scala环境:
sudo gedit /etc/profile
在最后一行加上:
#SCALA VARIABLES START
export SCALA_HOME=/home/data/scala-2.11.7
export PATH=$PATH:$SCALA_HOME/bin
#SCALA VARIABLES END
然后刷新系统配置,检查Java安装情况:
source /etc/profile
scala -version
看到下图说明成功:
接下来配置Spark环境:
sudo gedit /etc/profile
在最后一行加上:
#SPARK VARIABLES START
export SPARK_HOME=/home/data/spark-1.4.0-bin-hadoop2.4
export PATH=$PATH:$SPARK_HOME/bin
#SPARK VARIABLES END
配置完成的profile文件应该如下图:
然后刷新系统配置:
source /etc/profile
进入spark的conf目录:
备份文件:
sudo mv spark-env.sh.template spark-env.sh
然后编辑新建的文件:
sudo gedit spark-env.sh
在文件最下面加入:
export SCALA_HOME=/home/data/scala-2.11.7
export JAVA_HOME=/home/data/jdk1.7.0_79
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_MEMORY=1024m
export master=spark://localhost 7070
最后还应该编辑该目录下的slaves中机器名,因为我机器名就叫localhost,所以就不编辑了。
第三步:运行Spark
启动Spark集群。
进入sbin目录:
然后在浏览器中访问:localhost:8080
从页面上可以看到一个Worker节点的信息。
我们进入spark的bin目录,使用“spark-shell”控制台:
应该无错出现下面界面:
测试下:
通过访问"http://localhost:4040",进入spark-shell web控制台页面:
输入:
hello world
hello hadoop
pls say hello
然后在Scala命令行输入读取程序:
val readFile = sc.textFile("file:///home/file/test1.txt")
再执行:
readFile.collect
查看spark-shell web控制台: