美文网首页数据科学家的自我修养Hadoop大数据
Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式

Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式

作者: padluo | 来源:发表于2017-11-16 17:53 被阅读34次

    系列目录:

    Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境

    建立Linux虚拟机(全节点)

    客户机操作系统:CentOS-6.5-x86_64。

    网络连接:host-only。Connecet automaticcally:打勾。

    hostname Address Netmask Gateway
    hadoopmaster 192.168.169.100 255.255.255.0
    hadoopslave1 192.168.169.101 255.255.255.0
    hadoopslave2 192.168.169.102 255.255.255.0

    安装类型:Minimal

    关闭防火墙和SELINUX(全节点)

    # iptables
    service iptables status
    service iptables stop
    # 不随操作系统自动启动
    chkconfig iptables off
    # 永久起效,reboot重启后生效
    vi /etc/selinux/config
    SELINUX=disabled
    

    hosts文件修改(全节点)

    vi /etc/hosts
    
    192.168.169.100 hadoopmaster
    192.168.169.101 hadoopslave1
    192.168.169.102 hadoopslave2
    

    合并CentOS 6.5的两个DVD作为本地yum源(master节点)

    创建相关目录

    mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd /mnt/iso
    

    说明:

    /mnt/dvd1和/mnt/dvd2,用于挂载Centos6.5原有的两个镜像ISO文件。

    /mnt/dvd,合并后的镜像文件存放目录。

    /mnt/iso,制作好ISO镜像的存放目录。

    挂载CentOS原来的两个镜像文件,首先, 复制第一张DVD(CentOS-6.5-x86_64-bin-DVD1)中的所有文件到/mnt/dvd目录下,然后,只拷贝第二张DVD中 Packages目录下的所有RPM文件到/mnt/dvd/Packages/目录下,由于第二张DVD(CentOS-6.5-x86_64-bin-DVD2)不能当做启动光盘,所以只需要RPM文件即可。

    mount /dev/sr0 /mnt/dvd1
    df -h
    cp -av /mnt/dvd1/* /mnt/dvd
    umount /mnt/dvd1
    
    mount /dev/cdrom /mnt/dvd2
    cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd/Packages/
    

    合并TRANS.TBL,将DVD2中TRANS.TBL的信息追加到DVD1中TRANS.TBL后面,并排序保存。

    cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd/Packages/TRANS.TBL
    mv /mnt/dvd/Packages/{TRANS.TBL,TRANS.TBL.BAK}
    sort /mnt/dvd/Packages/TRANS.TBL.BAK > /mnt/dvd/Packages/TRANS.TBL
    rm -rf /mnt/dvd/Packages/TRANS.TBL.BAK
    

    备份原有yum配置文件

    cd /etc/yum.repos.d
    rename .repo .repo.bak *.repo
    

    生成新的yum配置文件

    cat > /etc/yum.repos.d/CentOS-Media.repo <<EOF
    >[c6-media]
    >name=CentOS-\$releasever - Media
    >baseurl=file:///mnt/dvd
    >gpgcheck=0
    >enabled=1
    >gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    >EOF
    

    更新yum源

    yum clean all
    yum upgrade
    

    将/mnt/dvd/打包为iso

    yum install genisoimage
    mkisofs -l -J -L -r -V "CentOS-6.5-x86_64" -o /mnt/iso/CentOS-6.5-x86_64-DVD.iso /mnt/dvd
    

    CentOS搭建本地yum源(http方式)(master节点)

    启动httpd服务

    # 验证是否安装httpd服务
    rpm -qa|grep httpd
    # yum install -y httpd
    yum install -y httpd
    # 启动httpd服务
    service httpd start
    chkconfig httpd on
    

    安装yum源

    # 在/var/www/html/下创建文件夹CentOS6.5
    mkdir -p /var/www/html/CentOS6.5
    
    # 将iso文件中的内容copy到CentOS6.5
    cp -av /mnt/dvd/* /var/www/html/CentOS6.5/
    

    利用ISO镜像,yum源搭建OK。浏览器验证访问:http://192.168.169.100/CentOS6.5/

    使用yum源

    # 备份原有的repo文件
    mkdir -p /etc/yum.repos.d/repo.bak
    cd /etc/yum.repos.d/
    cp *.repo *.repo.bak repo.bak/
    rm -rf *.repo *.repo.bak
    # 新建文件 vi CentOS6.5.repo
    [base]
    name=CentOS-$releasever - Base
    baseurl=http://hadoopmaster:80/CentOS6.5/
    enabled=1
    gpgcheck=1
    gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
    
    # 更新yum源
    yum clean
    yum repolist
    

    yum源配置(全节点)

    使用yum源

    # 备份原有的repo文件
    mkdir -p /etc/yum.repos.d/repo.bak
    cd /etc/yum.repos.d/
    cp *.repo *.repo.bak repo.bak/
    rm -rf *.repo *.repo.bak
    # 新建文件 vi CentOS6.5.repo
    [base]
    name=CentOS-$releasever - Base
    baseurl=http://hadoopmaster:80/CentOS6.5/
    enabled=1
    gpgcheck=1
    gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
    
    # 更新yum源
    yum clean
    yum repolist
    

    ssh免密码登录,以master节点为例(全节点)

    yum install -y openssh-clients
    ssh-keygen -t rsa
    ssh-copy-id -i .ssh/id_rsa.pub root@hadoopmaster
    ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave1
    ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave2
    

    安装jdk(全节点)

    mkdir -p /root/training
    cd /root/training
    tar -zxvf jdk-7u75-linux-i586.tar.gz
    

    配置环境变量:

    vi .bash_profile
    
    JAVA_HOME=/root/training/jdk1.7.0_75
    export JAVA_HOME
    
    PATH=$JAVA_HOME/bin:$PATH
    export PATH
    
    # 立即生效
    source .bash_profile
    which java
    java -version
    

    bug解决:64bit的操作系统,无法运行32bit的应用程序,需要安装32bit的glibc库。

    -bash: /root/training/jdk1.7.0_75/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
    
    yum install -y glibc*.i686
    rpm -qf /lib/ld-linux.so.2
    

    全分布模式配置

    参数文件 配置参数 参考值 备注
    hadoop-env.sh JAVA_HOME /root/training/jdk1.7.0_75 Java的home目录
    hdfs-site.xml dfs.replication 2 数据的冗余度
    hdfs_site.xml dfs.permissions false 权限检查
    core-site.xml fs.defaultFS hdfs://hadoopmaster:9000 namenode的IP地址和端口,9000是RPC通信的端口
    core-site.xml hadoop.tmp.dir /root/training/hadoop-2.4.1/tmp 如不修改默认为/tmp,设置的路径必须事先存在
    slaves DataNode的地址 hadoopslave1 hadoopslave2
    mapred-site.xml mapreduce.framework.name yarn 指定MR运行在yarn上
    yarn-site.xml yarn.resourcemanager.hostname hadoopmaster 指定YARN的老大(ResourceManager)的地址
    yarn-site.xml yarn.nodemanager.aux-services mapreduce_shuffle reducer获取数据的方式

    安装Hadoop(master节点)

    tar -zxvf hadoop-2.4.1.tar.gz
    

    配置环境变量:

    vi .bash_profile
    
    HADOOP_HOME=/root/training/hadoop-2.4.1
    export HADOOP_HOME
    
    PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export PATH
    
    source .bash_profile
    

    hadoop-env.sh

    # vi hadoop-env.sh
    
    export JAVA_HOME=/root/training/jdk1.7.0_75
    

    hdfs_site.xml

    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    

    core-site.xmlmkdir -p /root/training/hadoop-2.4.1/tmp

    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoopmaster:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/training/hadoop-2.4.1/tmp</value>
    </property>
    

    slaves

    hadoopslave1
    hadoopslave2
    

    mapred-site.xmlcp mapred-site.xml.template mapred-site.xml

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    

    yarn-site.xml

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoopmaster</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    

    配置文件复制

    rm -rf /root/training/hadoop-2.4.1/share/doc/
    cd ~/training/
    scp -r hadoop-2.4.1/ root@hadoopslave1:/root/training
    scp -r hadoop-2.4.1/ root@hadoopslave2:/root/training
    

    配置文件修改(slave节点)

    cd ~
    vi .bash_profile
    
    HADOOP_HOME=/root/training/hadoop-2.4.1
    export HADOOP_HOME
    
    PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export PATH
    
    source .bash_profile
    

    验证HDFS和MR

    hdfs namenode -format
    start-all.sh
    hdfs dfsadmin -report
    stop-all.sh
    

    您可能还想看

    数据分析/数据挖掘/机器学习

    Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据

    Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理

    Python数据挖掘与机器学习_通信信用风险评估实战(3)——特征工程

    Python数据挖掘与机器学习_通信信用风险评估实战(4)——模型训练与调优

    爬虫

    Python爬虫实战之爬取链家广州房价_01简单的单页爬虫

    Python爬虫实战之爬取链家广州房价_02把小爬虫变大

    Python爬虫实战之爬取链家广州房价_03存储

    Python爬虫实战之爬取链家广州房价_04链家的模拟登录(记录)

    搜狗词库爬虫(1):基础爬虫架构和爬取词库分类

    搜狗词库爬虫(2):基础爬虫框架的运行流程


    微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。

    数据分析

    转载请注明:转载自微信公众号「数据分析」


    相关文章

      网友评论

        本文标题:Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式

        本文链接:https://www.haomeiwen.com/subject/gjhrvxtx.html