zoukankan      html  css  js  c++  java
  • hadoop集群搭建

    centos网络打开:
    #> vi /etc/sysconfig/network-scripts/ifcfg-ens3
    将onboot改为yes即可
    #>vi /etc/resolv.conf
    nameserver 8.8.8.8
    重启客户机
    修改主机名
    vim /etc/hostname
    例子:192.168.0.100(配置的静态ip) s100
    修改静态ip
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    将BOOTPROTO="dhcp" =====> BOOTPROTO="static"
    将ipv6的所有yes改成no,或直接删除
    添加以下几行:
    IPADDR=192.168.0.100
    PREFIX=24
    GATEWAY=192.168.0.1
    DNS=192.168.0.1
    然后重启网络:
    service network restart

    安装jdk:
    1、解压jdk到/soft文件夹
    tar -xzvf jdk-8u131-linux-x64.tar.gz -C /soft
    2、创建符号链接
    ln -s /soft/jdk1.8.0_131 /soft/jdk
    3、配置环境变量(/etc/profile)
    #java环境变量
    export JAVA_HOME=/soft/jdk
    export PATH=$PATH:$JAVA_HOME/bin
    4、使环境变量生效
    source /etc/profile
    5、检查jdk安装
    java -version
    Hadoop本地安装模式
    1、解压hadoop到/soft文件夹
    tar -xzvf hadoopx.y.z -C /soft
    2、创建hadoop符号链接
    ln -s hadoop2.7.3 hadoop
    3、配置环境变量(/etc/profile)
    #hadoop环境变量
    export HADOOP_HOME=/soft/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    4、使环境变量生效
    source /etc/profile
    5、测试hadoop安装
    hadoop version
    Hadoop的三种模式共存:
    cd /soft/hadoop/etc
    mv hadoop local
    cp -r local pseudo
    cp -r local full
    本地模式/独立模式:用作测试
    伪分布模式
    ln -s pseudo hadoop
    cd Hadoop
    1、修改xml文件

    ========core-site.xml=================
    <?xml version="1.0"?>
    <!-- core-site.xml -->
    <configuration>
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://s100/</value>
    </property>
    </configuration>

    ========hdfs-site.xml=================
    <?xml version="1.0"?>
    <!-- hdfs-site.xml -->
    <configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    </configuration>

    ========mapred-site.xml=================
    <?xml version="1.0"?>
    <!-- mapred-site.xml -->
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration>

    ========yarn-site.xml=================
    <?xml version="1.0"?>
    <!-- yarn-site.xml -->
    <configuration>
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>s100</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>

    2、修改hadoop-env.sh文件,把第25行修改为:export JAVA_HOME=/soft/jdk
    3、配置ssh免密登录
    1)配置hosts文件
    vim /etc/hosts
    192.168.23.100 s100
    2)ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    3)cd ~/.ssh/
    cp id_rsa.pub authorized_keys
    4)ssh s100
    4、格式化hdfs文件系统
    hdfs namenode -format
    5、启动hadoop
    start-all.sh
    6、查看Hadoop是否启动
    jps
    7、关闭hadoop
    stop-all.sh
    完全分布式
    ln -sfT full hadoop

    -------------远程拷贝---------------
    获取yum源
    yum search rsync
    查看rsync是否安装
    yum search rsync
    安装rsync
    yum install -y rsync*
    rsync :同scp,但rsync支持软连接。
    ----------------------------------

    关闭防火墙:
    #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
    firewall-cmd --state
    systemctl status firewalld
    #停止firewall
    systemctl stop firewalld.service
    systemctl stop firewalld
    #禁止firewall开机启动
    systemctl disable firewalld.service
    chkconfig firewalld off
    #启动firewall开机启动
    chkconfig firewalld on
    #启动防火墙
    systemctl enable firewalld
    systemctl start firewalld
    #重启虚拟机,然后再输入第一条命令查看防火墙状态
    init 6

    hadoop四大模块:
    common //hadoop核心类库
    hdfs //分布式存储模块
    mapreduce //分布式计算模块
    yarn //资源调度模块

    hadoop相关端口:
    hdfs:
    namenode(50070) //名称节点
    datanode(50075) //数据节点
    secondarynamenode(50090) //辅助名称节点

    yarn:
    resourcemanager(8088) //资源管理器
    nodemanager //节点管理器

    hadoop基本命令:
    hdfs dfs -ls / //列出所有文件
    hdfs dfs -lsr / //递归列出所有文件
    hdfs dfs -mkdir -p /user //创建文件夹
    hdfs dfs -put 1.txt /user //上传文件到指定目录
    hdfs dfs -get /user //从hdfs下载文件
    hdfs dfs -rm /1.txt //删除文件
    hdfs dfs -rmr /user //递归删除


    体验mapreduce:
    1、创建文本文件1.txt
    2、hdfs dfs -put 1.txt /
    3、hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /1.txt /out
    4、hdfs dfs -cat /out/part-r-00000


    hadoop完全分布式搭建:
    1、使用链接克隆:
    所有使用此克隆的客户机,都相当于对原客户机的引用,并在此基础上创建自己的修改

    2、修改主机名和静态ip(s101-s104)
    主机名:sudo nano /etc/hostname
    ip: sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33
    修改完成之后重启客户机

    3、修改ssh(s101-s104)
    删除~/.ssh文件夹: rm -rf ~/.ssh

    4、新建ssh公私秘钥对(s101)
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

    5、修改hosts文件(s101-s105)
    127.0.0.1 localhast
    192.168.23.100 s100
    192.168.23.101 s101
    192.168.23.102 s102
    192.168.23.103 s103
    192.168.23.104 s104
    192.168.23.105 s105

    6、使用命令生成认证key(s101)
    ssh-copy-id centos@s101

    7、配置s102-s104免密登录(s101)
    ssh-copy-id centos@s102
    ssh-copy-id centos@s103
    ssh-copy-id centos@s104
    ssh-copy-id centos@s105


    8、配置root用户的ssh免密登录

    9、将s101的hosts文件分发到其他节点
    scp 101.txt centos@s102:~
    文件copy-id.sh 执行 ./copy-id.sh
    #!/bin/bash
    user=`whoami`
    for (( i=102 ; i<=104 ; i++ )) ; do
    scp $1 $user@s$i:$2
    done
    10、文件 xsync.sh
    #!/bin/bash
    user=`whoami`
    for((i=11;i<=14;i++));do
    scp $1 $user@s$i:$2
    done

    11、xcall.sh脚本
    #!/bin/bash
    user=`whoami`
    for (( i=101 ; i<=104 ; i++ )) ; do
    tput setaf 2
    echo ================ s$i $@ ================
    tput setaf 9
    ssh s$i $@
    done


    12、配置文件
    重新链接目录(s101-s105)
    ./xcall.sh ln -sfT /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop

    拷贝伪分布式配置文件(s101-s105)
    cp ${HADOOP_HOME}/etc/pseudo/* ${HADOOP_HOME}/etc/full/

    cd /soft/hadoop/etc/full
    修改slaves文件(从节点的主机名)(s101-s105)
    s102
    s103
    s104

    修改hdfs-site.xml,将副本数从1改为3(s101-s105)
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>s105:50090</value>
    </property>
    修改临时目录(工作目录),修改core-site.xml,添加如下配置(s101-s105)
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/centos/hadoop/full</value>
    </property>
    集群管理命令
    ------------------------
    【启动】
    start-all.sh //启动所有进程
    start-dis.sh //启动所有hdfs进程,nn/dn/2nn
    start-yarn.sh //启动所有yarn进程,rm,nm

    hadoop-daemons.sh start datanode 启动所有的datanode数据节点
    hadoop-daemon.sh start datanode 只启动当前的datanode数据节点


    【停止】
    stop-all.sh //启动所有进程
    stop-dis.sh //启动所有hdfs进程,nn/dn/2nn
    stop-yarn.sh //启动所有yarn进程,rm,nm

    hadoop-daemons.sh stop datanode 启动所有的datanode数据节点
    hadoop-daemon.sh stop datanode 只启动当前的datanode数据节点


    More 分页查看


    10、文件 xsync.sh
    #!/bin/bash
    user=`whoami`
    for((i=11;i<=14;i++));do
    scp $1 $user@s$i:$2
    done

    11、xcall.sh脚本
    #!/bin/bash
    user=`whoami`
    for (( i=101 ; i<=104 ; i++ )) ; do
    tput setaf 2
    echo ================ s$i $@ ================
    tput setaf 9
    ssh s$i $@
    done
    某一个节点没起来,例:namenode
    重新格式化hadoop
    0.停掉hadoop集群
    1.删除所有节点的hadoop临时目录;
    默认临时目录在/tmp/hadoop-centos
    $>xcall.sh rm -rf /tmp/hadoop-centos
    2.删除hadoop所有日志
    $>xcall.sh rm -rf /soft/hadoop/logs/*
    3.格式化文件系统
    $>hadoop namenode -format
    4.启动集群
    $>start-dfs.sh
    $>start-yarn.sh
    5.停止集群
    $>stop-yarn.sh
    $>stop-dfs.sh
    ----------------------------------------------------

    5、启动hadoop
    start-all.sh
    6、查看Hadoop是否启动
    jps
    7、关闭hadoop
    stop-all.sh
    完全分布式
    ln -sfT full hadoop

    关闭防火墙:
    #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
    firewall-cmd --state
    systemctl status firewalld
    #停止firewall
    systemctl stop firewalld.service
    systemctl stop firewalld
    #禁止firewall开机启动
    systemctl disable firewalld.service
    systemctl disable firewalld
    #启动防火墙
    systemctl enable firewalld
    ==========================================================================================
    hadoop四大模块:
    common :公共模块/核心模块
    hdfs : 分布式存储模块
    mapreduce : 分布式计算框架
    yarn : 资源调度框架
    hddoop 脚本
    which start-all.sh //查看start-all.sh所在目录路径
    which $PATH //查看环境变量

    主节点进程:
    从节点进程:
    hdfs:
    yarn:

    jps : 是java process ,ssh默认是没有权限调用的,
    解决方案:将jps连接到ssh默认的环境变量下面 ln -s /soft/jdk/bin/jps /usr/local/bin/jps
    start-all.sh //在主节点启动
    hadoop-daemon.sh stop datanode //关闭datanode节点(在那个虚拟机执行就就关闭那个虚拟机datanode节点)
    hadoop-daemon.sh start datanode //关闭datanode节点(在那个虚拟机执行就就关闭那个虚拟机datanode节点)
    start-dis.sh //启动hdfs进程
    hadoop-daemons.sh --hostnames s101 start namenode //单独启动namenode
    hadoop-daemons.sh start detnode //单独启动detnode
    namenode数据:
    edits文件 编辑日志,存放的是hdfs所进行的所有操作
    edits_inprogress文件
    fsimage文件 镜像文件,存放的是hdfs中的文件索引,权限、大小、名称、目录、文件类型等等。
    查看编辑日志:
    hdfs oev -i edits_00000001-000000002 -p xml -o ~/edit.xml
    查看镜像文件:
    hdfs oiv -i fsimage_0000000001 -p XML -o ~/fsimage.xml

    在当前会话(hadoop运行时),所做的一切修改,会被edits_inprogress文件所捕捉,在hadoop关闭之后,两个文件均不进行操作。
    在hadoop启动的时候:1.会将edits_inprogress文件实例化为编辑日志;2.镜像文件(fsimage)会和它数字之后的编辑日志(edits)进行融合,形成一个新的镜像文件

  • 相关阅读:
    Hadoop 单机搭建 Scala安装
    Hadoop 单机搭建 Hbase单机模式搭建
    Hadoop 单机搭建 hadoop单机搭建
    Linux shell 重定向学习笔记
    转:SQLServer中的GROUPING,ROLLUP和CUBE
    ueditor getshell漏洞重现及分析
    SQLServer禁用、启用外键约束
    转:Sql Server中清空所有数据表中的记录
    EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
    12种开源Web安全扫描程序
  • 原文地址:https://www.cnblogs.com/nyfz/p/9035330.html
Copyright © 2011-2022 走看看