Centos6.9安装hadoop2.8集群模式(一)

    最近正好项目期,为了技术选型,初探了一下hadoop,为系统拆分为分布式架构做一些准备工作,废话不多说了,直接入主题。

一、安装前准备工作:

    我们要安装一套Hadoop,首先要规划好机器节点的管理工作,因本人笔记本内存不足的原因,所以此次示例以3台虚拟机为例,搭建Hadoop集群环境。

  •     具体机器节点配置如下:
IP节点名称备注
10.211.55.10master主节点,目标为了管理启动其他节点信息。
10.211.55.6node2节点2
10.211.55.7node1节点1
  •     Centos 6.x (64)系统一套。
  •     Hadoop 2.8 软件一套。http://hadoop.apache.org
  •     Oracle JDK 1.7 一套。请从oracle官网自行下载
  •     VM或parallels desktop虚拟机软件一套,视个人爱好,土豪请略过。

二、安装准备工作:

  1. 设置好VM与parallels desktop的网络环境。我用的是parallels desktop。用VM的朋友请自行略过此设置。parallels desktop可以使用共享网络。
  2. 设置好网络后,请自行安装Centos 系统,安装过程比较简单,此处跳过。
  3. 设置各节点的主机名,Centos 6需要修改的地方有两个,一个是/etc/hosts文件,一个是/etc/sysconfig/network。在修改hosts文件的时候请注意,在做内环网络的时候,请不要将主机名称设置上去。否则在搭建hadoop过程中,从节点是链接不上去的。所以说主从节点在配置的时候稍微注意一下。
  4. 使用yum update命令更新软件依赖包,重启机器后,使用hostname命令,查看各节点是否已经顺利变更为我们计划的主机名称。
  5. 因我们设置的是共享网络,所以parallels desktop会默认分配好IP地址,为了安装顺利,我们还是将各系统设置为静态IP。

    IPADDR="10.211.55.10"
    NETMASK="255.255.255.0"
    GATEWAY="10.211.55.1"
    ARPCHECK="no"

    如果gateway不太清楚是什么,可以使用netstat –rn查看一下结果。

  6. 设置好静态IP后,我们关闭防火墙,因为是示例,所以我们不做防火墙规则处理,并将其加入开机后停止启动项。

    chkconfig NetworkManager off

    chkconfig iptables off

  7. 卸载openjdk后安装java jdk

    export HADOOP_HOME=/usr/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin
    export HADOOP_COMMON_LIB_NAT

    使用命令:rpm -qa | grep java查看Openjdk安装包。

    使用命令rpm -e --nodeps  XXXXXXXX卸载安装包。

    将jdk1.7.tar.gz放到/user/java路径下,并配置/etc/profile环境变量。

    重新加载source /etc/profile使环境变量生效,检查java –version查看是否已经是Java JDK

  8. 将hadoop放到/user/目录下,解压缩hadoop-2.8.0.tar.gz包,并且将其重新命名为hadoop。在/etc/profile 中hadoop环境变量。

    export HADOOP_HOME=/usr/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export 

    HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
    export HADOOP_ROOT_LOGGER=DEBUG,console

    export HADOOP_ROOT_LOGGER=DEBUG,console只为了我们看日志的时候比较明细异常,此句话可以省略。

  9. 创建hadoop用户

    groupadd hadoop

    useradd -g hadoop hadoop

  10. 将hadoop用户升级为root权限用户。

    chmod u+w /etc/sudoers

    ## Allow root to run any commands anywhere
    root    ALL=(ALL)       ALL
    hadoop  ALL=(ALL)       ALL

    也可以使用: echo "hadoop ALL=(ALL) ALL" >> /etc/sudoers

  11. 最后将/user/hadoop文件授权给hadoop用户使用
    chown –R hadoop:hadoop /user/hadoop
  12. 检查Linux动态库

    ll /lib64/libc.so.6

    centos 6.9动态库为libc-2.12.so,hadoop2.8需要libc-2.14.so,所以我们要讲内核升级一下,到http://ftp.gnu.org/gnu/glibc/下载   

    下载glibc-2.14.tar.bz2

    下载glibc-linuxthreads-2.5.tar.bz2

    将文件解压缩

    tar -jxvf /user/hadoop/software/glibc-2.14.tar.bz2

    tar -jxvf /user/hadoop/software/glibc-linuxthreads-2.5.tar.bz2

    export CFLAGS="-g -O2"

    在/user/hadoop/software中执行

    ./glibc-2.14/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

    make

    make install

    动态库安装时间比较长,安装后再次执行ll /lib64/libc.so.6查看显示是否为libc-2.14.so,如果没有安装libc-2.14.so则启动时会报错。

    以上12项在各节点安装后,准备工作创建完成,重启各节点,我们开始干活儿了。

三、开始搭建:

  1. 切换到hadoop用户。首先我们要创建hadoop使用目录。切换用户主目录。

    mkdir –p hdfs/{data/master,name} tmp (主节点)

    mkdir –p hdfs/{data/node1,name} tmp (从node1节点)

    mkdir –p hdfs/{data/node2,name} tmp (从node2节点)

    请注意,3个节点的目录不要一致,否则启动管理台后无法看到从节点。

    如果搭建过程中需要重新格式文件服务,请将以上目录删除后,重新创建再次格式化,否则从节点可能无法启动。

  2. 创建SSH免账号密码登录

    使用hadoop创建免ssh登录。

    ssh-keygen -t rsa  -P ''       一路回车

    cd .ssh

    cp id_rsa.pub authorized_keys

    chmod 600 authorized_keys

    不用使用最高权限,这样也不安全

    使用ssh-copy-id name@ip 将生成的登录信息放到2个子节点中去。

    ssh-copy-id hadoop@node1

    ssh-copy-id hadoop@node2

    验证master是否可以使用ssh免密码方式登录子节点

    ssh node1

    ssh node2

  3.  进入/user/hadoop/etc/hadoop目录,该目录主要是配置目录,其中包括主从节点配置,管理台配置等 hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/home/hadoop/hdfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/home/hadoop/hdfs/data/master</value> master、node1、node2根据各节点名称换路径
        </property>
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:9001</value>
        </property>
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
    </configuration>

    core-site.xml

    <configuration>
       <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/home/hadoop/tmp</value>
        </property>
        <property>
            <name>io.file.buffer.size</name>
            <value>131702</value>
        </property>
        <property>
            <name>hadoop.proxyuser.hadoop.hosts</name>
            <value>*</value>
        </property>
        <property>
            <name>hadoop.proxyuser.hadoop.groups</name>
            <value>*</value>
        </property>
    </configuration>

     

    cp mapred-site.xml.template mapred-site.xml
    mapred-site.xml
    <configuration>
         <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>master:10020</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>master:19888</value>
        </property>
    </configuration>
    yarn-site.xml
    <configuration>
       <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>master:8100</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>master:8101</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>master:8102</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>master:8103</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>master:8888</value>
        </property>
        <property>
            <name>yarn.nodemanager.resource.memory-mb</name>
            <value>4096</value>
        </property>
    </configuration>
  4. 设置完毕,最后设置一下环境变量后,准备启动hadoop

    编辑hadoop-env.sh

    25 # export JAVA_HOME=${JAVA_HOME} 将25注释掉,反正我配置环境变量找不到JAVA_HOME添加

    export JAVA_HOME=/usr/java/jdk1.7

    编辑yarn-env.sh一样加上

    export JAVA_HOME=/usr/java/jdk1.7

  5. 设置2个节点
    master
    node1
    node2
  6. 将hadoop复制到各节点中去

    scp -r /user/hadoop hadoop@node1  /user

    scp -r /user/hadoop hadoop@node2 /user

    注意:别忘记更改hdfs-site.xml各节点的路径

    /home/hadoop/hdfs/data/node1

    /home/hadoop/hdfs/data/node2

  7. 启动前格式化磁盘格式

    hdfs namenode -format

    格式化日志中,发现Exiting with status 0 则为格式化成功,否则删除各节点的tmp,hdfs目录

  8. 启动程序

    进入/usr/hadoop/sbin目录

    启动程序./start-all.sh

四、检查与查看结果

  1. 进程检查

    ./bin/hdfs dfsadmin -report  

    或者使用命令jps

  2. 日志检查

    检查hadoop-hadoop-datanode-node2.log

    检查hadoop-hadoop-datanode-node1.log

  3. 节点查看
    查看http://10.211.55.10:50070/
  4. 管理端检查
    查看http://10.211.55.10:8888

     

 

转载于:https://my.oschina.net/u/3591017/blog/1232795

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值