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. CPU31X-2DP通过DP网络连接远程IO站

    一.远程IO站介绍 二.该DP网络系统结构 三.组态DP主站 1.组态机架硬件配置 2.设置profibus属性,主站地址为2,如下图 3.完成主站组态 四.组态远程IO从站ET200M 1.接口模块 ...

  2. bzoj 1492: [NOI2007]货币兑换Cash

    Description 小Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和 B纪念券(以下 简称B券).每个持有金券的顾客都有一个自己的帐户.金券的数目可以是一个 ...

  3. jsDOM编程-小球在盒子里来回撞击

    首先写一个小页面:页面需要一个div 这个div就是盒子,然后在div里在包含一个子div 这个子div就包含一张小球的图片 代码: <!doctype html> <html> ...

  4. 聊聊API网关的作用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 10.5px "Trebuchet MS" } p.p2 { margin: 0.0px ...

  5. linux svn up 中文显示乱码解决办法

    vi /etc/sysconfig/i18n #LANG="en_US.UTF-8" #LANG=zh_CN.GB18030 #LC_ALL=zh_CN.GB18030 #SYSF ...

  6. Head First设计模式之装饰者模式

    一.定义 装饰者模式,英文叫Decorator Pattern,在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 动态将职责附加到 ...

  7. MVC实现(简单小例子)

    Here I’ll demonstrate simple Spring MVC framework for building web applications. First thing first. ...

  8. Robot Framework学习笔记(三)------常用关键字介绍

    下面关键字全部由 Builtin 库提供,Builtin 为 Robot Framework 标准类库.Builtin库提供常用的关键字 1.log log 关键字就是编程语言里的"prin ...

  9. 教育改革——国家认证 “网红” 编程语言 Python

     特大消息!!!  不止是上海计算机二级考试 ,全国计算机考试等级考试也有要求 如果你正打算考计算机等级,那你需要学习以下知识 要求学习的知识太多了,我就不一一在这里展示了! 一.考试改革的目标 据悉 ...

  10. JAVA类的创建: 创建JAVA的类 ,JAVA的字段,JAVA类的方法

    1. 创建Java的类 如果说Java的一切都是对象,那么类型就是决定了某一类对象的外观与行为.可是类型的关键字不是type,而是class,创建一个新的类型要用下面的代码: 1 2 3 class ...