01-centeros7下安装hadoop集群

1 面试部分:

简述hadoop分布式安装步骤

a) 安装Java

b) 创建unix用户账号及网络环境配置

c) 安装hadoop

d) SSH配置

e) 配置hadoop

f) 格式化HDFS文件系统

g) 启动和停止守护进程

2 CenterOS7下hadoop完全分布式集群安装

2.1 以root身份在centerOS安装jdk

    在/usr目录下创建java目录

    mkdir   /usr/java

    cd   /usr/java

    将下载的 jdk-8-linux-x64.tar.gz拷贝到/usr/java目录下并解压缩

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

    vi /etc/profile

    追加内容

    JAVA_HOME=/usr/java/jdk1.8.0_144

    JRE_HOME=/usr/java/jdk1.8.0_144/jre

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

    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

    export JAVA_HOME JRE_HOME CLASS_PATH PATH

    运行source命令是环境配置文件修改生效:

          source /etc/profile

    测试jdk是否安装成功:命令

         java -version

2.2 创建Unix账号

  A  我们为hadoop创建特定的账号,专门管理hadoop

     以root身份,运行创建账号命令:

     # useradd hadoop    

       注意:用户账号名称随意,不一定必须是hadoop,命令成功后,会生成hadoop账号名,及组名hadoop;

     接着,修改账号登录密码:

      #passwd hadoop

        按要求输入两次相同密码即可;

 B   修改用户及网络环境

      以root身份关闭防火墙,使用hadoop各个节点能够相互通讯

        systemctl stop firewalld.service #停止firewall

        systemctl disable firewalld.service #禁止firewall开机启动

C  修改网卡配置,建议配置为静态IP

    以root身份配置网卡配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-ens33

       修改内容如下:

       BOOTPROTO="static"

       ONBOOT="yes"

       IPADDR=192.168.226.129

       GATEWAY=192.168.226.2

        NETMASK=255.255.255.0

        DNS1=192.168.226.2

D   修改机器名称

   以root身份修改/etc/hosts文件内容

    每一个机器ip 机器名称

    192.168.1.100 master

    192.168.1.101 slavea

    192.168.1.102 slaveb

    保存文件

   以root身份修改对应机器名称

    hostname master

E 修改网络配置

    以root身份修改/etc/sysconfig/network

    # Created by anaconda

    NETWORKING=yes

    HOSTNAME=master

    使用如下命令使刚才的修改/etc/sysconfig/network生效

    source /etc/sysconfig/network

    service network restart

   注意:修改其他节点机器

 F 以root身份修改hadoop账号,添加到sudoers

   注意:

    创建的hadoop用户需要拥有临时管理员身份

    修改/etc/sudoers

    添加内容

    hadoop ALL=(ALL) NOPASSWD: ALL

    重启使之生效  

2.3  SSH配置

    Hadoop控制脚本(并非守护进程)依赖SSH执行整个集群的操作;

   A:以root身份centerOs安装启动ssh服务

    SSH 为 Secure Shell 的缩写,SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

    测试centeros检查是否安装了SSH包

    rpm -qa|grep ssh

    启动ssh服务

    systemctl restart sshd.service

 B: 以root身份修改sshd服务

    需要编辑/etc/ssh/sshd_config打开sshd服务.

    放开标注的文档(去掉#):

    #RSAAuthentication yes

    #PubkeyAuthentication yes

    重启服务,使刚才的修改生效(centos7上命令)

    systemctl restart sshd.service

 C:注意,以hadoop账号身份登录,并操作 ssh免密

    ① 为每台机器生成密钥

    命令:ssh-keygen - 生成、管理和转换认证密钥

    参数

    -t type

    指定要创建的密钥类型。

    可以使用:“rsa1”(SSH-1) “rsa”(SSH-2) “dsa”(SSH-2)-P passphrase

    提供(旧)密语

    输入命令:

    ssh-keygen -t 'RSA'

    在/home/用户名/.ssh/目录下生成密钥文件;

    ② 复制公钥内容到authorized_keys文件;

    命令:

    cat id_rsa.pub >> authorized_keys

    chmod 644 authorized_keys

    ③ 将Slave1和Slave2中的>authorized_keys内容复制到Master的authorized_keys文件中

    ④ 将Master中的authorized_keys文件复制Slave1和Slave2中

    scp authorized_keys hadoop@Slave2:/hadoop/.ssh/

    ⑤ 测试使用ssh进行无密码登录

    ssh Slave1 ssh登陆远程服务器

    exit 并退出远程登陆

注意:

 远程拷贝命令

    scp 文件名 用户名@远程ip:/路径/

    scp命令提供选项:

    -p 拷贝文件的时候保留源文件简历的时间;

    -q 执行文件拷贝时,不显示任何提示消息;

    -r 拷贝整个目录;

    -v 拷贝文件时,显示提示信息;

2.4  以hadoop账号身份登录,安装hadoop集群

2.4.1 解压hadoop并配置相关环境变量

    以hadoop用户名解压hadoop压缩文件

    JAVA_HOME=/usr/java/jdk1.8.0_144

    JRE_HOME=/usr/java/jdk1.8.0_144/jre

    HADOOP_HOME=/home/hadoop/hadoop-2.9.0

    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/etc/hadoop

    export JAVA_HOME JRE_HOME CLASS_PATH HADOOP_HOME PATH

    使用命令使配置生效:

    source /etc/profile

2.4.2 修改hadoop-env.sh添加jdk环境

    export JAVA_HOME=/usr/java/jdk1.8.0_144

    hadoop有三种运行模式:

    独立(本地)模式:

    无需运行任何守护进程,所有程序都在同一个JVM上执行,适合开发阶段;

    伪分布模式:

    hadoop守护进程运行在本地机器上,模拟一个小规模的集群。

    全分布式模式:

    hadoop守护进程运行在一个集群上。

2.4.3 修改core-site.xml文件

    hadoop core的配置项,如hdfs、MapReduce和YARN常用的I/O设置等;

   

    fs.defaultFS

    hdfs://master:9000

   

    运行hdfs需要将一台机器指定为namenode,属性fs.defaultFS描述hdfs文件系统的uri,默认端口是8020.

   

   

      hadoop.tmp.dir

      /home/hadoop/hadoop-2.9.0/wutemp

   

2.4.4 修改hdfs-site.xml文件

    hdfs-site.xml配置文件:

    hadoop守护进程的配置项,包括namenode、辅助namenode和datanode等;

   

         

           dfs.namenode.name.dir

           /home/hadoop/hadoop-2.9.0/wudata/name

         

    dfs.namenode.name.dir:

    namenode存储永久性的元数据的目录列表。namenode在列表上的各个目录中都存放相同的元数据文件;

   

         dfs.datanode.data.dir

         /home/hadoop/hadoop-2.9.0/wudata/data

   

    dfs.datanode.data.dir:

    datanode存放数据块的目录列表。各个数据块分别存放于某一个目录中;

   

      dfs.replication

      3

   

    dfs.replication:

    设置文件备份系数,默认3;

   

      dfs.secondary.http.address

      slavea:50090

   

2.4.5 mapred-site.xml文件

    mapred-site.xml配置文件:

    MapReduce守护进程的配置项,包括作业历史服务器;

   

      mapreduce.framework.name

      yarn

   

    名称mapreduce.framework.name:

    指的是使用yarn运行mapreduce程序,启动了HDFS之后,就可以启动yarn了。执行命令start-yarn.sh即可启动MapReduce集群

2.4.6 yarn-site.xml文件

    Yarn守护进程的配置项,包括资源管理器、web应用代理服务器和节点管理器;

   

      yarn.resourcemanager.hostname

      master

   

    yarn.resourcemanager.hostname属性:

    运行资源管理器的机器主机名,默认值:0.0.0.0

   

      yarn.nodemanager.aux-services

      mapreduce_shuffle

   

    yarn.nodemanager.aux-services属性:

    节点管理器运行的附加服务列表。NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序;默认情况下,不指定附加服务。

2.4.7 为yarn添加 客户端计算机名称

    修改/home/hadoop/hadoop-2.9.0/etc/hadoop/slaves

    master

    slavea

    slaveb

2.5 格式化HDFS文件系统并 启动hdfs文件系统

 A:  首次使用hadoop前,必须格式化文件系统,输入如下命令:

    hdfs namenode -format

 B:  启动和停止守护进程

    start-dfs.sh #启动hdfs

    start-yarn.sh #启动yarn

C:终止守护进程

    stop-yarn.sh

    stop-dfs.sh

注意: 启动守护进程

    hadoop-daemon.sh start namenode

    测试namenode进程情况:

    jps

    可以使用守护进程:

    start-dfs.sh

    启动dfs报错,如下:The authenticity of host 'master (192.168.223.110)' can't be established:

    解决方法:

    好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题,即可不修改/etc/ssh/ssh_config文件的配置而解决此问题:

    ssh  -o StrictHostKeyChecking=no  192.168.0.xx

    start-yarn.sh

    mr-jobhistory-daemon.sh start historyserver

2.6 测试集群是否搭建成功

    命令:

    hdfs dfsadmin -report

    在浏览器中测试hdfs

    http://192.168.1.100:50070

你可能感兴趣的:(01-centeros7下安装hadoop集群)