• Hadoop运行环境搭建


    Hadoop运行环境搭建

    更改为阿里的Centos7的yum源

     #下载wget

    yum -y install wget

     #echo 下载阿里云的yum源配置  Centos-7.repo

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    yum clean all

    yum makecache

    环境配置

    关闭防火墙

    关闭防火墙:systemctl stop firewalld.service

    禁用防火墙:systemctl disable firewalld.service

    查看防火墙:systemctl status firewalld.service

     关闭Selinux:vi /etc/selinux/config

    SELINUX=enforcing改为SELINUX=disabled

    修改IP

    善用Tab键

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

    BOOTPROTO=static

    ONBOOT=yes

    IPADDR=192.168.X.51

    GATEWAY=192.168.X.2

    DNS1=8.8.8.8

    NETMASK=255.255.255.0

     vi /etc/resolv.conf

    nameserver 8.8.8.8

    重启网卡:servie network restart   Centos7

    重启网卡:iptable service restart   Centos6

     注:如果出现失败的情况,执行如下命令

    systemctl stop NetworkManager

    systemctl disable NetworkManager

    然后重启网卡。servie network restart

    修改主机名

    hostnamectl set-hostname 主机名  ==> Centos 7

    IP和主机名关系映射

    vi /etc/hosts

    192.168.1.51 master

    192.168.1.52 slave1

    192.168.1.53 slave2

     windows的C:WindowsSystem32driversetc路径下找到hosts并添加

    192.168.1.51 master

    192.168.1.52 slave1

    192.168.1.53 slave2

     连接Xshell

    输入IP、用户名和密码

    opt目录下创建文件(此步可选)

    创建chenchuan用户

    adduser chenchuan

    passwd chenchuan

    设置chenchuan用户具有root权限

    vi /etc/sudoers 92行 找到root    ALL=(ALL)       ALL

    复制一行:chenchuan ALL=(ALL)       ALL

    安装jdk

    卸载现有jdk

    (1) 查询是否安装java软件:

        rpm -qa|grep java

    (2) 如果安装的版本低于1.7,卸载该jdk:

        rpm -e 软件包名字

       /opt目录下创建两个子文件

       mkdir /opt/module /opt/software

      解压jdk到/opt/module目录下

       tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

      配置jdk环境变量

       vi /etc/profile

       export JAVA_HOME=/opt/module/jdk1.8.0_144

       export PATH=$PATH:$JAVA_HOME/bin

       source /etc/profile

    测试jdk安装成功

    java -version

    java version "1.8.0_144"

    Hadoop运行模式

    /完全分布式部署Hadoop

    SSH无密码登录

    生成公钥和私钥:ssh-keygen -t rsa

    然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

    将公钥拷贝到要免密登录的目标机器上

    ssh-copy-id 主机名1

    ssh-copy-id 主机名2

    ssh-copy-id 主机名3

    注:在另外两台机器上分别执行,共执行9遍

    .ssh文件夹下的文件功能解释

    1)~/.ssh/known_hosts :记录ssh访问过计算机的公钥(public key)

    2)id_rsa :生成的私钥

    3)id_rsa.pub :生成的公钥

    4)authorized_keys :存放授权过得无秘登录服务器公钥

    配置集群(表格版)

    1) 集群部署规划:

     

    bigdata111

    bigdata112

    bigdata113

    HDFS

     

    NameNode

    SecondaryNameNode

    DataNode

     

     

    DataNode

     

     

    DataNode

    YARN

    ResourceManager

    NodeManager

    NodeManager

     

    NodeManager

    2) 配置文件:

    文件

    配置

    core-site.xml

    <!-- 指定HDFS中NameNode的地址 -->

    <property>

    <name>fs.defaultFS</name>

            <value>hdfs://master:9000</value>

    </property>

     

    <!-- 指定hadoop运行时产生文件的存储目录 -->

    <property>

    <name>hadoop.tmp.dir</name>

    <value>/opt/module/hadoop-2.8.4/data/tmp</value>

    </property>

    hdfs-site.xml

        <!--数据冗余数-->

    <property>

    <name>dfs.replication</name>

    <value>3</value>

    </property>

        <!--secondary的地址-->

    <property>

            <name>dfs.namenode.secondary.http-address</name>

            <value>slave1:50090</value>

    </property>

    <!--关闭权限-->

    <property>

         <name>dfs.permissions</name>

         <value>false</value>

     </property>

    yarn-site.xml

    <!-- reducer获取数据的方式 -->

    <property>

    <name>yarn.nodemanager.aux-services</name>

     <value>mapreduce_shuffle</value>

    </property>

     

    <!-- 指定YARN的ResourceManager的地址 -->

    <property>

    <name>yarn.resourcemanager.hostname</name>

    <value>slave1</value>

    </property>

         <!-- 日志聚集功能使能 -->

    <property>

    <name>yarn.log-aggregation-enable</name>

    <value>true</value>

    </property>

    <!-- 日志保留时间设置7天(秒) -->

    <property>

    <name>yarn.log-aggregation.retain-seconds</name>

    <value>604800</value>

    </property>

    mapred-site.xml

    <!-- 指定mr运行在yarn上-->

    <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

    </property>

        <!--历史服务器的地址-->

    <property>

        <name>mapreduce.jobhistory.address</name>

        <value>slave1:10020</value>

    </property>

        <!--历史服务器页面的地址-->

    <property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>slave1:19888</value>

    </property>

    hadoop-env.sh、yarn-env.sh、mapred-env.sh(分别在这些的文件中添加下面的路径)

     

    export JAVA_HOME=/opt/module/jdk1.8.0_144(注:是自己安装的路径)

    slaves

    master、slave1、slave2(自己设置的主机名)

    格式化Namenode:

    hdfs namenode -format

     为什么要格式化?

    NameNode主要被用来管理整个分布式文件系统的命名空间(实际上就是目录和文件)的元数据信息,同时为了保证数据的可靠性,还加入了操作日志,所以,NameNode会持久化这些数据(保存到本地的文件系统中)。对于第一次使用HDFS,在启动NameNode时,需要先执行-format命令,然后才能正常启动NameNode节点的服务。

    格式化做了哪些事情?

    NameNode节点上,有两个最重要的路径,分别被用来存储元数据信息和操作日志,而这两个路径来自于配置文件,它们对应的属性分别是dfs.name.dir和dfs.name.edits.dir,同时,它们默认的路径均是/tmp/hadoop/dfs/name。格式化时,NameNode会清空两个目录下的所有文件,之后,会在目录dfs.name.dir下创建文件

    hadoop.tmp.dir 这个配置,会让dfs.name.dir和dfs.name.edits.dir会让两个目录的文件生成在一个目录里

    启动集群的命令:

    Namenode的主节点:sbin/start-dfs.sh

    Yarn的主节点:sbin/stop-yarn.sh

    注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

    scp文件传输

    实现两台远程机器之间的文件传输(master主机文件拷贝到slave1主机上)

    scp -r [文件] 用户@主机名:绝对路径

    注:伪分布式是一台、完全分布是三台

    完全分布式

    步骤:

    1)克隆2台客户机(关闭防火墙、静态ip、主机名称)

    2)安装jdk

    3)配置环境变量

    4)安装hadoop

    5)配置环境变量

    6)安装ssh

    7)配置集群

    8)启动测试集群

    注:此配置直接使用虚拟机克隆伪分布式两台即可

    自带官方wordcount案例

    随意上传一个文本文件

    上传命令:hadoop fs -put 文件名 /

    执行命令:

    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.X.X.jar wordcount /入 /出

    命令解析:

    hadoop jar 路径的jar包 全类名 输入路径 输出路径

    查看结果:

    hadoop fs -cat 路径

    Hadoop启动和停止命令:

    以下命令都在$HADOOP_HOME/sbin下,如果直接使用,记得配置环境变量

    启动/停止历史服务器

    mr-jobhistory-daemon.sh start|stop historyserver

    启动/停止总资源管理器

    yarn-daemon.sh start|stop resourcemanager

    启动/停止节点管理器

    yarn-daemon.sh start|stop nodemanager

    启动/停止 NN 和 DN

    start|stop-dfs.sh

    启动/停止 RN 和 NM

    start|stop-yarn.sh

    启动/停止 NN、DN、RN、NM

    start|stop-all.sh

    启动/停止 NN

    hadoop-daemon.sh start|stop namenode

    启动/停止 DN

    hadoop-daemon.sh start|stop datanode

  • 相关阅读:
    88. 合并两个有序数组
    680. 验证回文字符串 Ⅱ
    345. 反转字符串中的元音字母
    633. 平方数之和
    分支程序设计
    scanf函数(初学者)
    输入与输出(初学者)
    C语句详细(初学者)
    算术运算符和算术表达式(初学者)
    变量赋值(初学者)
  • 原文地址:https://www.cnblogs.com/zhangchenchuan/p/11970001.html
Copyright © 2020-2023  润新知