hadoop集群的安装 一 准备工作

Hadoop集群的安装


1 安装jdk并配置环境变量
2 调试网络、ssh安装和为hadoop创建安装用户并免密
3 下载hadoop并解压
4 修改配置文件(并修改环境变量)
5 克隆hadoop节点
6 初始化hdfs namenode
7 启动hadoop(yarn,hdfs)

a) 安装Java

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

c) 安装hadoop

d) SSH配置

e) 配置hadoop

f) 格式化HDFS文件系统

g) 启动和停止守护进程

2 CenterOS安装Hadoop

以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   临时改变

    vi /etc/hostname    永久改变
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设置等;
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property>
    运行hdfs需要将一台机器指定为namenode,属性fs.defaultFS描述hdfs文件系统的uri,默认端口是8020.

    <!–指定hadoop运行时产生文件的存储路径–>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/hadoop/hadoop-2.9.0/wutemp</value>
    </property>
2.4.4 修改hdfs-site.xml文件
    hdfs-site.xml配置文件:
    hadoop守护进程的配置项,包括namenode、辅助namenode和datanode等;
    <!--NameNode会持久存储名称空间和事务日志-->
         <property>
           <name>dfs.namenode.name.dir</name>
           <value>/home/hadoop/hadoop-2.9.0/wudata/name</value>
         </property>
    dfs.namenode.name.dir:
    namenode存储永久性的元数据的目录列表。namenode在列表上的各个目录中都存放相同的元数据文件;

    <property>
         <name>dfs.datanode.data.dir</name>
         <value>/home/hadoop/hadoop-2.9.0/wudata/data</value>
    </property>
    dfs.datanode.data.dir:
    datanode存放数据块的目录列表。各个数据块分别存放于某一个目录中;

    <property>
      <name>dfs.replication</name>
      <value>3</value>
    </property>
    dfs.replication:
    设置文件备份系数,默认3;


    <property>
      <name>dfs.secondary.http.address</name>
      <value>slavea:50090</value>
    </property>
2.4.5 mapred-site.xml文件
    mapred-site.xml配置文件:
    MapReduce守护进程的配置项,包括作业历史服务器;
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    名称mapreduce.framework.name:
    指的是使用yarn运行mapreduce程序,启动了HDFS之后,就可以启动yarn了。执行命令start-yarn.sh即可启动MapReduce集群
2.4.6 yarn-site.xml文件
    Yarn守护进程的配置项,包括资源管理器、web应用代理服务器和节点管理器;
    <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>master</value>
    </property>
    yarn.resourcemanager.hostname属性:
    运行资源管理器的机器主机名,默认值:0.0.0.0

    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
    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

猜你喜欢

转载自blog.csdn.net/cs_mycsdn/article/details/82016655