Spark摘说

Spark的环境搭建涉及三个部分,一是linux系统基础环境搭建,二是Hadoop集群安装,三是Spark集群安装。在这里,主要介绍Spark在Centos系统上的准备工作——linux系统基础环境搭建。这个主要包括:

  • 运行环境说明:硬软件环境、集群网络环境、Linux使用工具(xshell和xftp)
  • 样板机环境搭建:安装操作系统及创建hadoop用户、设置系统环境(机器名,IP地址,Host映射文件,关闭防火墙、SElinux)、配置运行环境(更新OpenSSL-—可选,修改SSH配置文件,JDK安装及配置,Scala安装及配置)
  • 集群环境配置:复制样板机, 设置集群机机器名和IP地址,配置SSH无密码登录,设置CentOS7启动模式(主要针对有X-Windows界面的版本,本最小化版本不需要)

1.运行环境说明

1.1 硬软件环境要求

  • 主机操作系统:Windows 64位,8G内存
  • 虚拟软件:VMware-workstation-full-14.0.0-6661328
  • 虚拟机操作系统:CentOS-7-x86_64-Minimal-1708最小化系统(纯命令行界面),单核,1G内存
  • 虚拟机运行环境:

JDK : jdk-8u151-linux-x64

Scala : scala-2.10.4

        Hadoop : hadoop-2.9.0 (不需要编译,可以直接在官网下载完整版)

Spark :  spark-2.2.0-bin-hadoop2.7(不需要编译,可以直接在官网下载完整版)

1.2 集群网络环境要求

所有节点均是Centos7 64系统,防火墙/SELinux均禁用,所有节点上均创建了一个hadoop用户;

集群包含三个节点,节点之间可以免密码SSH访问;

所有节点上均创建一个目录/opt/app用于存放安装程序,并且拥有者是hadoop用户。注意:要求hadoop用户对目录/opt/app必须有rwx权限(一般做法是root用户在根目录下创建/opt/app目录,并使用chown命令修改该目录拥有着为hadoop),否则hadoop用户使用SSH往其他机器分发文件会出现权限不足的提示。

所有节点上均创建一个目录/opt/uploads用于存放安装包tar.gz,并且拥有者是hadoop用户,要求同上。

上述的hadoop用户或者目录/opt/app都是不唯一的,可以是其他用户,或者其他目录,但是得保证创建的用户对创建的目录拥有rws权限。

1.3安装使用的工具

1.3.1 Linux命令行工具xshell 5

XShell5可用于连接远程服务器或者VMware创建的centos虚拟机机,如图:

1.3.2 Linux文件传输工具Xftp5

Xftp5用于在windows和Linux两个系统之间进行文件的传输,如图:

两个文件的下载地址为:https://www.portablesoft.org/xshell-xftp-integrated/

2、搭建样板机环境

本次安装集群分三个节点,本节为搭建样板机环境搭建,搭建分为安装操作系统及创建hadoop用户、设置系统环境(机器名,IP地址,Host映射文件,关闭防火墙、SElinux)和配置运行环境(更新OpenSSL-—可选,修改SSH配置文件,JDK和Scala的安装及配置)三个步骤

2.1 安装操作系统及创建hadoop用户

第一步,使用VMware14创建新的虚拟机,处理器和内核选择数量为1,内存为1G,网络连接为NAT模式,其他选择为推荐,虚拟磁盘大小选择20G并选择将虚拟磁盘存储为单个文件,如图:

第二步 开始安装CentOS 7,直接选择第一个Install CentOS7

第三步 按Enter键启动安装程序,然后到语言选择界面,直接选择英文English吧,因为是命令行界面,哈哈哈哈........

第四步 转到INSTALLAION SUMMARY界面,根据提示,选择系统安装磁盘,然后点Done;

         

第五步 返回INSTALLAION SUMMARY界面,点Begin Installation,开始安装,转到配置CONFIGURATION界面,配置root用户密码和创建hadoop用户及其密码,如图:

设置root密码

创建hadoop用户及其密码,并将其设置为administrator管理者用户

第六步 完成配置,CentOS安装完成。

第七步 给hadoop用户赋予root权限,以root用户使用如下命令:

# vi /etc/sudoers 

hadoop ALL=(ALL)   ALL

2.2 设置系统环境

系统环境设置,包括机器名,IP地址,Host映射文件,关闭防火墙、SElinux。该部分对服务器的配置需要在服务器本地进行配置,配置完毕后需要重启服务器确认配置是否生效,特别是远程访问服务器需要设置固定IP地址。

2.2.1 设置机器名

以root用户登录,使用# vi /etc/sysconfig/network打开配置文件,设置机器名,以样板机为第一台,设置内容为HOSTNAME=hadoop1,集群配置时再分别设为hadoop2、hadoop3等,新机器名在重启后生效

2.2.2 设置IP地址

1.使用命令ip addr查看本机是否分配IP,可以发现系统的网卡没有分配IP地址,在此我们需要记住本机网卡的名称,本篇中网卡为ens33:

2.查找网卡ens33,使用# cd /etc/sysconfig/network-scripts/ && ll 进入network-scripts文件夹查看,ifcfg-ens33为本机网卡配置文件:

3. 系统刚装好时,会缺少很多包,例如由于缺net-tools包,ifconfig命令无效;而ifcfg-ens33里面有个现成的配置,能通过宿主机连接WWW万维网,需要开启自动连接网络,步骤如下:使用# vi ifcfg-ens33打开ifcfg-ens33配置文件,把 ONBOOT=no 改为 ONBOOT=yes 保存,使用命令service network restart重启网络,如图:

   

再使用ping www.baidu.com,可以ping通:

再使用命令ip addr,可以看到系统已经自动随机分配IP地址啦:

使用命令yum install net-tools,安装net-tools包:

输入命令ifconfig查看网卡地址IP、网关、mac地址等等配置信息:

4.修改或重建网络连接,设置该连接为手工方式,第三步配置系统分配的IP地址是随机,而我们需要固定的IP的地址,在此前先把ifcfg-ens33原本的配置全部加#注释,在下方重新写,设置如下网络信息:

   左为原配置注释,右为在重新配置:

5. 在命令行中,使用 # service network restart 重启网络,使修改IP信息生效,是否生效,可以使用ifconfig命令查看:

哈哈哈哈,至此IP地址修改完毕。

注意:

虚拟机的IP地址、网关及网络掩码设置与VMware虚拟网络设置有关:

第一步   在VMware14菜单栏目,点击编辑,再选虚拟网络编辑器,如图:

第二步 查看GATEWAY网关值

第三步 查看IP设置范围和NETMASK网络掩码值:

2.2.3 设置Host映射文件

1. 使用root身份编辑/etc/hosts映射文件,设置IP地址与机器名的映射,设置信息如下:

# vi /etc/hosts

  • 192.168.187.201  hadoop1
  • 192.168.187.202  hadoop2
  • 192.168.187.203  hadoop3

2. 使用如下命令对网络设置进行重启,以下命令都要以root身份运行

# sudo  /etc/init.d/network restart

或者 # sudo service network restart

3. 验证设置是否成功,ping通则成功

2.2.4 关闭防火墙

在hadoop安装过程中需要关闭防火墙和SELinux,否则会出现异常

1. systemctl status firewalld 或是 firewall-cmd --state 查看防火墙状态,从CentOS7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。如果是CentOS7版本以下的或是其他Ubuntu系统,可通过service iptables status查看防火墙状态。

# systemctl status firewalld

# firewall-cmd --state

2.以root用户或是hadoop用户root权限sudo去停止firewalld服务即可。如果是CentOS7版本以下的或是其他Ubuntu系统,使用#chkconfig iptables off命令关闭防火墙。

root用户  :  # systemctl stop firewalld.service && systemctl disable firewalld.service   

或是   

hadoop用户 : # sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

3. systemctl status firewalld 或是 firewall-cmd --state 查看防火墙状态,可以看出,防火墙已关闭

2.2.5 关闭SElinux

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。

1. 使用getenforce命令查看是否关闭

2. 修改/etc/selinux/config文件

将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效

root 用户:# vi /etc/selinux/config    或是    hadoop用户:  # sudo vi /etc/selinux/config

3.使用getenforce查看是否关闭

2.3 配置运行环境

本节为第三节配置运行环境(更新OpenSSL——可选,修改SSH配置文件,JDK安装及配置,Scala安装及配置)

2.3.1 更新OpenSSL——可选

CentOS7不需要更新OpenSSL,CentOS6及以下版本可能需要更新OpenSSL。看下图,可以看到CentOS7无包可更新。

hadoop用户 :# sudo yum install openssl

2.3.2 修改SSH配置文件

1. 以root用户或是hadoop用户用root权限sudo使用如下命令打开sshd_config配置文件。修改ssh配置文件,主要是为了后面集群机之间可以免密码登录。

 root用户: # vi /etc/ssh/sshd_config     或是   hadoop用户:  # sudo vi /etc/ssh/sshd_config

开放三个配置,如下图所示:

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

2. 配置后重启服务。CentOS7 重启sshd服务,其他低版本系统重启服务命令为# service sshd restart。service sshd restart命令在CentOS7下不起作用。

# systemctl restart sshd.service

2.3.3 JDK安装及配置

1. 下载jdk-8u151-linux-x64安装包

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

打开界面之后,先选中Accept License Agreement,然后下载jdk-8u151-linux-x64.tar.gz,如下图所示:

2. 赋予hadoop用户/usr/lib/java目录可读写权限,使用命令如下:

# sudo chmod -R 777 /usr/lib/java     -R 为对文件夹里面所有的文件递归修改权限

3. 把下载的安装包,使用Xftp工具上传到/usr/lib/java目录下,使用如下命令进行解压

# tar -zxvf  jdk-8u151-linux-x64.tar.gz

解压后目录如下图所示:

4. 使用root用户或是hadoop用户用root权限sudo配置/etc/profile文件,并生效该配置

root用户 : # vi /etc/profile      或是     hadoop用户: # sudo vi /etc/profile

添加如下内容:

export JAVA_HOME=/usr/lib/java/jdk1.8.0_151

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5.使用命令使配置生效并校验:

# source /etc/profile

# java -version

2.3.4 Scala安装及配置

1. 下载Scala安装包

http://www.scala-lang.org/download/2.10.4.html

2.  以root用户或是 hadoop用户以root权限sudo,创建/opt/uploads存放安装包tar.gz、/opt/app目录存放安装程序,并把它们的拥有者与用户组修改为hadoop用户和hadoop组,使用命令如下:

root 用户: # mkdir app && mkdir uploads

或是

hadoop用户; # sudo mkdir app  &&  sudo  mkdir uploads

root用户:略,只是少sudo     

或是         

hadoop用户:# sudo  chown -R hadoop:hadoop  /opt/app && sudo chown -R hadoop:hadoop /opt/hadoop  修改文件拥有者以及所属用户组

【注意】:把文件拥有者和用户组修改为hadoop是为了方便集群机传递文件以及集群系统创建文件方便,避免因权限问题出现错误。

3. 上传Scala安装文件

把下载的scala安装包使用Xftp工具上传到/opt/uploads上

4. 解压缩

到上传目录下,用如下命令解压缩:

# cd /opt/upload

  # tar -zxvf scala-2.10.4.tgz

迁移到/opt/app目录下

# sudo mv  ./scala-2.10.4   /opt/app

5. 使用root用户或是hadoop用户以root权限sudo配置/etc/profile文件,并生效该配置

export  SCALA_HOME=/opt/app/scala-2.10.4

export PATH=$PATH:$SCALA_HOME/bin

在配置java环境的基础上配置scala环境

6. 使用如下命令刷新profile配置文件

# source /etc/profile

# scala -version

3. 配置集群环境

复制样板机生成其他两个节点,按照规划设置及其命名和IP地址,最后设置SSH无密码登录。

3.1 复制样板机

复制样板机两份,分别为hadoop2和hadoop3

3.2 设置集群机机器名和IP地址

以root用户或是 hadoop用户以root权限sudo ,使用# vi /etc/sysconfig/network打开配置文件,根据1.2规划修改其余两台机器名,修改机器名后需要重新启动机器,新机器名在重启后生效

   

按照2.2.2里面的第四步配置方法修改机器IP地址,以root用户或是hadoop用户root权限sudo,使用命令 # sudo vi /etc/sysconfig/network-script/ifcfg-ens33 打开网卡ens33配置文件。ifcfg-ens33文件名不唯一,可能为ifcfg-xxx其他命名,可以参照2.2.2里面的第一,二步查找网卡文件。

hadoop2的配置:                                                                         hadoop3的配置:

                   

3.3 配置SSH无密码登录

1. 使用hadoop用户登录在三个节点中使用如下命令生成私钥和公钥:

# ssh-keygen -t rsa       命令解析:-t 用于指定密钥类型  rsa 为指定的密钥类型

2. 进入/home/hadoop/.ssh目录在三个节点中分别对应把公钥命名为authorized_keys_hadoop1、authorized_keys_hadoop2和authorized_keys_hadoop3,使用命令如下:

# cd /home/hadoop/.ssh

# cp id_rsa.pub authorized_keys_hadoop1

3. 把两个从节点(hadoop2、hadoop3)的公钥使用scp命令传送到hadoop1节点的/home/hadoop/.ssh文件夹中,或者通过Xftp工具直接复制也行:

# scp authorized_keys_hadoop2 hadoop@hadoop1:/home/hadoop/.ssh

# scp authorized_keys_hadoop3 hadoop@hadoop1:/home/hadoop/.ssh

hadoop1上 /home/hadoop/.ssh目录:

4. 把三个节点的公钥信息保存到authorized_keys文件中,使用如下命令:

# cat authorized_keys_hadoop1 >> authorized_keys 

# cat authorized_keys_hadoop2 >> authorized_keys

# cat authorized_keys_hadoop3 >> authorized_keys

5. 把该密码文件分发到其他两个从节点上,使用如下命令

# scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh

# scp authorized_keys hadoop@hadoop3:/home/hadoop/.ssh

6. 在三台机器中使用如下设置authorized_keys读写权限,读写权限为600,而400会报错

# chmod 600 authorized_keys

7. 测试ssh免密码登录是否生效

3.4 设置CentOS 7 启动模式(主要针对有X-Windows界面的版本,本最小化版本不需要)

因为此系统CentOS 7为最小化版本,没有X-Window桌面模式,只有命令行模式,所有不必要修改启动模式。

下面的说明,主要是针对CentOS 7 有X-Window桌面界面版本:

设置好集群环境后,可以让集群运行在命令行模式下,减少集群所耗费的资源。以root用户或是hadoop用户的root权限sudo,使用 # vi /etc/inittab,将id:5:initdefault: 改为id:3:initdefault:

Linux系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不同,所要完成的工作和所要达到的目的都不同。

CentOS设置了如下表所示的运行级,并且系统可以在这些运行级别之间进行切换,以完成不同的工作。运行级说明:

0 所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级别

1 单用户模式。用于系统维护,只有少数进程运行,同时所有服务也不启动

2 多用户模式。和运行级别3一样,只是网络文件系统(NFS)服务没被启动

3 多用户模式。运行多用户登录系统,是系统默认的启动级别

4 留给用户自定义的运行级别

5 多用户模式,并且在系统启动后运行X-Window,给出一个图形化的登录窗口

6 所有进程被终止,系统重新启动

参看资料:

http://www.cnblogs.com/shishanyuan/p/4701510.html石山园大神的讲解

http://blog.csdn.net/lina791211/article/details/11818825 authorized_keys 权限为600原因

https://zhidao.baidu.com/question/139006065.html 权限修改

https://jingyan.baidu.com/article/ca2d939d2cf1aceb6c31ce0a.html IP地址修改

https://jingyan.baidu.com/article/4853e1e5641c771909f72617.html ifconfig找不到

http://blog.csdn.net/c233728461/article/details/52679558 CentOS7 firewalld防火墙关闭

Spark环境搭建(上)——基础环境搭建的更多相关文章

  1. 搭建Istio基础环境

    需求 搭建istio基础环境(基于1.5.1版本) 安装步骤 在安装 Istio 之前,需要一个运行着 Kubernetes 的环境,安装步骤可以参考前面的文章 下载istio,然后解压,然后将 is ...

  2. 搭建SSM基础环境>基于idea

    目录 搭建SSM基础环境 创建一个Web项目 导入所需要的jar包 在项目目录下创建一个Resources文件夹并设置为类路径 在src目录下创建项目的初始文件夹目录 在resources文件夹下创建 ...

  3. centos7搭建Fabric基础环境

    一.首先升级centos最新内核 参考https://www.cnblogs.com/sky-cheng/p/12146054.html 二.卸载旧版本docker [root@localhost ~ ...

  4. 2-10 就业课(2.0)-oozie:12、cm环境搭建的基础环境准备

    8.clouderaManager5.14.0环境安装搭建 Cloudera Manager是cloudera公司提供的一种大数据的解决方案,可以通过ClouderaManager管理界面来对我们的集 ...

  5. 20190228 搭建Hadoop基础环境

    下载VMware 12 版本以上 下载CentOS 7以上版本 安装虚拟机,安装系统时,注意设置root 账号和密码 虚拟机配置网络,命令ip addr 查看IP 地址,(配置网络网上有很多办法,百度 ...

  6. shell搭建CentOS_7基础环境

    #!/bin/bash#Auth:Darius#CentOS_7配置实验环境eno=`ifconfig|awk '{print $1}'|head -1|awk -F ":" '{ ...

  7. Oracle RAC集群搭建(二)-基础环境配置

    01,创建用户,用户组 [root@rac1 ~]# groupadd -g 501 oinstall [root@rac1 ~]# groupadd -g 502 dba [root@rac1 ~] ...

  8. MyBatis操作指南-搭建项目基础环境(基于Java API)含log4j2配置

  9. MyBatis操作指南-搭建项目基础环境(基于XML)含log4j配置

  10. 虚拟机console基础环境部署——系统基础环境

    1. 概述2. 工具类安装2.1 安装vim2.2 安装tree2.3 安装expect2.4 安装lsof3. 编译环境类安装 1. 概述 本系列博客是在最小化安装CentOS6.5的基础上,通过配 ...

随机推荐

  1. xml生成方式二(Xml序列化器XmlSerializer)

    一.andoirdAPI提供了xml生成和解析的API: XmlSerializer xs = Xml.newSerializer();和XmlPullParser xmlPullParser = X ...

  2. 基于阿里云的MQTT远程控制

    好久没有写博客了,眼看自己的项目就要快做完了,先分享一下基于MQTT的远程控制,自己买了一个阿里的云端,然后在云端上安装了一个MQTT服务器,其实是一不小心买了两个,所以准备贡献出来一个供大家使用, ...

  3. 9.11 test

    题面.pdf T1:通过打表发现,从一个点出发只有距离为1,2,3,5,6,9,10,13,17的点才不能到达: 那么我们转移的时候只有距离在20以内才不一定能直接转移,那么我们离散化之后; 对于每一 ...

  4. find + xargs + cp 遇到文件名中带空格如何处理

    一,需求为查询文件名为ZRSH开头的时间为7月至今的所有文件并打包 1.首先想到的就是find + xargs + cp  格式.. find 2016073* -type f  -name *ZRS ...

  5. Git Pro读书笔记

    本文为Git Pro读书笔记,所有内容均来自Git Pro 1 Git基础 1.1 记录每次更新到仓库 在Git里,文件有4种状态,modified, staged, commited, 还有一种状态 ...

  6. Redis在APP中的应用

    前言 redis 是内存型数据库,读取data速度远快于mysql和sqlserver,如果将APP中列表信息或者一些常被访问的信息转存至内存上,然后APP通过redis读取内存上的数据,那么APP的 ...

  7. 【转】nginx提示:500 Internal Server Error错误的解决方法

    本文转自:http://www.jb51.net/article/35675.htm 现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和 ...

  8. 【http转https】其之三 IIS_URL重写_http重定向到https

    IIS_URL重写_http重定向到https 文:铁乐猫 2016年1月14日 IIS7以上支持URL Rewrite这个模块了,所以在我们做好了ssl证书这一块之后, 要对来自http的请求重定向 ...

  9. Java 并发编程:volatile的使用及其原理

    Java并发编程系列: Java 并发编程:核心理论 Java并发编程:Synchronized及其实现原理 Java并发编程:Synchronized底层优化(轻量级锁.偏向锁) Java 并发编程 ...

  10. Django__Ready

    Python WEB框架 : DJango : 大而全 flask : 小而精 tornado : 下载DJango : PIP3 INSTALL DJANGO 创建DJango项目 : django ...