安装介质:
jdk-8u162-linux-x64.tar.gz 提取码:2bh8
hadoop-2.7.3.tar.gz 提取码:d4g2
scala-2.12.6.tgz 提取码:s2ly
spark-2.1.0-bin-hadoop2.7.tgz 提取码:5kcf
准备3台Linux主机,按照下面的步骤在每台主机上执行一遍,设置成如下结果:
安装Linux操作系统比较简单,这里不再详细。参考:《 Linux从入门到精通1:使用 VMware Workstation 14 Pro 安装 CentOS 7 详细图文教程 》
编辑hosts配置文件:# vi /etc/hosts,追加3行:
测试主机名是否可用:
(1)使用ssh-keygen工具生成秘钥对:
(2)将生成的公钥发给三台主机:master、slave1、slave2:
(3)测试秘钥认证是否成功:
由于各个主机上的时间可能不一致,会导致执行Spark程序出现异常,因此需要同步各个主机的时间。在实际生成环境中,一般使用时间服务器来同步时间,但是搭建时间服务器相对较为复杂。这里介绍一种简单的方法来快速同步每台主机主机的时间。我们知道,使用date命令可以设置主机的时间,因此这里使用putty的插件MTPuTTY来同时向每一台主机发送date命令,以到达同步时间的目的。
(1)使用MTPuTTY工具连接三台主机,点击MTPuTTY工具的Tools菜单下的“Send script…”子菜单,打开发送脚本工具窗口。
(2)输入命令:date -s 2018-05-28,然后回车(注意:一定要回车,否则只发送不执行),在下面服务器列表中选择要同步的主机,然后点击“Send script”,即可将时间同步为2018-05-28 00:00:00。
使用winscp工具将JDK安装包 jdk-8u144-linux-x64.tar.gz 上传到/root/tools/目录中,该目录是事先创建的。
进入/root/tools/目录,将jdk安装包解压到/root/training/目录中,该目录也是事先创建的。
使用winscp工具将Hadoop安装包 hadoop-2.7.3.tar.gz 上传到master节点的/root/tools/目录中,该目录是事先创建的。
进入/root/tools/目录,将hadoop安装包解压到/root/training/目录中,该目录也是事先创建的。
进入Hadoop配置文件目录:
(1) 配置hadoop-env.sh文件:
(2) 配置hdfs-site.xml文件:
(3) 配置core-site.xml文件:
(4) 配置mapred-site.xml文件:
将模板文件mapred-site.xml.template拷贝一份重命名为mapred-site.xml然后编辑:
(5) 配置yarn-site.xml文件:
(6) 配置slaves文件:
将master上配置好的Hadoop安装目录分别复制给两个从节点slave1和slave2,并验证是否成功。
第一次启动需要输入yes继续。
启动成功后,使用jps命令查看各个节点上开启的进程:
使用命令行查看HDFS的状态:
使用浏览器查看HDFS的状态:
使用浏览器查看YARN的状态:
(1) 在HDFS上创建输入目录/input:
(2) 将本地数据文件data.txt上传至该目录:
(3) 进入到Hadoop的示例程序目录:
(4) 执行示例程序中的Wordcount程序,以HDFS上的/input/data.txt作为输入数据,输出结果存放到HDFS上的/out/wc目录下:
(5) 查看进度和结果:
可以通过终端打印出来的日志信息知道执行进度:
执行结束后可以在HDFS上的/out/wc目录下查看是否有_SUCCESS标志文件来判断是否执行成功。
如果执行成功,可以在输出目录下看到_SUCCESS标志文件,且可以在part-r-00000文件中查看到wordcount程序的结果:
由于Scala只是一个应用软件,只需要安装在master节点即可。
使用winscp工具将Scala安装包上传到master节点的/root/tools目录下:
进入/root/tools目录,将Scala安装包解压到安装目录/root/training/:
将Scala的家目录加入到环境变量PATH中:
使环境变量生效:
输入scala命令,如下进入scala环境,则证明scala安装成功:
我们先在master节点上配置好参数,再分发给两个从节点slave1和slave2。
使用winscp工具将Spark安装包上传到master节点的/root/tools目录下:
进入/root/tools目录,将Spark安装包解压到安装目录/root/training/下:
注意:由于Spark的命令脚本和Hadoop的命令脚本有冲突(比如都有start-all.sh和stop-all.sh等),
所以这里需要注释掉Hadoop的环境变量,添加Spark的环境变量:
按Esc:wq保存退出,使用source命令使配置文件立即生效:
进入Spark的配置文件目录下:
(1) 配置spark-env.sh文件:
(2) 配置slaves文件:
将master上配置好的Spark安装目录分别复制给两个从节点slave1和slave2,并验证是否成功。
启动后查看每个节点上的进程:
使用浏览器监控Spark的状态:
使用spark-shell命令进入SparkContext(即Scala环境):
启动了spark-shell之后,可以使用4040端口访问其Web控制台页面(注意:如果一台机器上启动了多个spark-shell,即运行了多个SparkContext,那么端口会自动连续递增,如4041,4042,4043等等):
注意:由于我们将Hadoop从环境变量中注释掉了,这时只能手动进入到Hadoop的sbin目录停止Hadoop:
Spark中常用的端口总结:
2.1.2 在Windows上安装与配置Spark本节介绍在Windows系统上安装Spark的过程。在Windows环境下需要安装Cygwin模拟Linux的命令行环境来安装Spark。
(1)安装JDK
相对于Linux、Windows的JDK安装更加自动化,用户可以下载安装Oracle JDK或者OpenJDK。只安装JRE是不够的,用户应该下载整个JDK。
安装过程十分简单,运行二进制可执行文件即可,程序会自动配置环境变量。
(2)安装Cygwin
Cygwin是在Windows平台下模拟Linux环境的一个非常有用的工具,只有通过它才可以在Windows环境下安装Hadoop和Spark。具体安装步骤如下。
1)运行安装程序,选择install from internet。
2)选择网络最好的下载源进行下载。
3)进入Select Packages界面(见图2-2),然后进入Net,选择openssl及openssh。因为之后还是会用到ssh无密钥登录的。
另外应该安装“Editors Category”下面的“vim”。这样就可以在Cygwin上方便地修改配置文件。
最后需要配置环境变量,依次选择“我的电脑”→“属性”→“高级系统设置”→“环境变量”命令,更新环境变量中的path设置,在其后添加Cygwin的bin目录和Cygwin的usr\bin两个目录。
(3)安装sshd并配置免密码登录
1)双击桌面上的Cygwin图标,启动Cygwin,执行ssh-host-config -y命令,出现如图2-3所示的界面。
2)执行后,提示输入密码,否则会退出该配置,此时输入密码和确认密码,按回车键。最后出现Host configuration finished.Have fun!表示安装成功。
3)输入net start sshd,启动服务。或者在系统的服务中找到并启动Cygwin sshd服务。
注意,如果是Windows 8操作系统,启动Cygwin时,需要以管理员身份运行(右击图标,选择以管理员身份运行),否则会因为权限问题,提示“发生系统错误5”。
(4)配置SSH免密码登录
1)执行ssh-keygen命令生成密钥文件,如图2-4所示。
2)执行此命令后,在你的Cygwin\home\用户名路径下面会生成.ssh文件夹,可以通过命令ls -a /home/用户名 查看,通过ssh -version命令查看版本。
3)执行完ssh-keygen命令后,再执行下面命令,生成authorized_keys文件。
cd ~/.ssh/
cp id_dsa.pub authorized_keys
这样就配置好了sshd服务。
(5)配置Hadoop
修改和配置相关文件与Linux的配置一致,读者可以参照上文Linux中的配置方式,这里不再赘述。
(6)配置Spark
修改和配置相关文件与Linux的配置一致,读者可以参照上文Linux中的配置方式,这里不再赘述。
(7)运行Spark
1)Spark的启动与关闭
①在Spark根目录启动Spark。
./sbin/start-all.sh
②关闭Spark。
./sbin/stop-all.sh
2)Hadoop的启动与关闭
①在Hadoop根目录启动Hadoop。
./sbin/start-all.sh
②关闭Hadoop。
./sbin/stop-all.sh
3)检测是否安装成功
正常状态下会出现如下内容。
-bash-4.1# jps
23526 Jps
2127 Master
7396 NameNode
7594 SecondaryNameNode
7681 ResourceManager
1053 DataNode
31935 NodeManager
1405 Worker
如缺少进程请到logs文件夹下查看相应日志,针对具体问题进行解决。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)