3.Hadoop_HDFS1.x_全分布式搭建

环境

  • CentOS 6.5
  • Apache Hadoop 2.6.5
  • JDK 7 (Hadoop3.0以上需要JDK8)
  • hadoop-2.6.5.tar.gz

准备工作

准备4台虚拟机 node01、node02、node03、node04

  1. 检查虚拟机时间是否同步

  2. 检查/etc/sysconfig/network 中 HOSTNAME是否与上面一致

  3. 检查/etc/hosts 文件是否设置,是否一致

  4. 检查 /etc/sysconfig/selinux中 SELINUX=disabled

  5. 检查防火墙是否关闭

架构说明

  • node01: nameNode(NN)
  • node02: secondaryNameNode(SNN)、dateNode(DN
  • node03: dateNode(DN
  • node04: dateNode(DN

主节点部署

  1. 安装jdk7

    # 安装
    rpm -i jdk-7u67-linux-x64.rpm 
    
  2. 设置ssh免密钥登陆,并分发

    # 使用ssh本地登录,如果才会有.ssh文件
    ssh localhost
    # 切换到家目录
    cd 
    # 查看是否有.ssh 文件 并进入
    ll -a
    cd ~/.ssh/
    # 生成id dsa 公钥
    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    # 把生成的公钥追加到authorized_keys 文件中,完成免密要操作
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    # 分发 到其他节点()
    scp id_dsa.pub root@node02:`pwd`/node01.pub
    scp id_dsa.pub root@node03:`pwd`/node01.pub
    scp id_dsa.pub root@node04:`pwd`/node01.pub
    
  3. 安装hadoop

    # 创建目录
    mkdir -p /opt/hadoop
    # 解压
    tar xf hadoop-2.6.5.tar.gz -C /opt/hadoop
    
  4. 配置hadoop环境变量

    vi + /etc/profile
    
  5. 修改hadoop路径相关配置文件

    # 修改hadoop-env.sh 中 export JAVA_HOME= 的值为jdk路径
    vi /opt/hadoop/hadoop-2.6.5/etc/hadoop/hadoop-env.sh
    export JAVA_HOME=/usr/java/jdk1.7.0_67
    
    # 修改 mapred-env.sh 计算框架中 # export JAVA_HOME 的值为jdk路径
    vi /opt/hadoop/hadoop-2.6.5/etc/hadoop/mapred-env.sh
    export JAVA_HOME=/usr/java/jdk1.7.0_67
    
    # 修改 yarn-env.sh 资源管理框架 # export JAVA_HOME= 的值为jdk路径
    vi /opt/hadoop/hadoop-2.6.5/etc/hadoop/yarn-env.sh
    export JAVA_HOME=/usr/java/jdk1.7.0_67
    
  6. 设置主节点配置信息和副本数、secondaryNode地址

    # 设置主节点配置信息 粘入core-site.xml中,修改块文件、元数据信息存放路径
    vi /opt/hadoop/hadoop-2.6.5/etc/hadoop/core-site.xml
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://node01:9000</value>
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/var/hadoop/pseudo</value>
        </property>
    
    # 设置副本数 粘入hdfs-site.xml,设置 secondaryNode 在hdfs-site.xml 
    vi /opt/hadoop/hadoop-2.6.5/etc/hadoop/hdfs-site.xml
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
         <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>node02:50090</value>
        </property>
    
  7. 设置从节点NN

    # 设置从节点 把slaves中localhost 换成从节点主机名
    vi /opt/hadoop/hadoop-2.6.5/etc/hadoop/slaves 
    node02
    node03
    node04
    
  8. 配置完成把hadoop分发到其他节点

    scp -r /opt/hadoop/ node02:`pwd`
    scp -r /opt/hadoop/ node03:`pwd`
    scp -r /opt/hadoop/ node04:`pwd`
    
  9. 配置并分发profile文件

    # 修改profile 环境变量代码,在末尾加入
    vi + /etc/profile
    export JAVA_HOME=/usr/java/jdk1.7.0_67
    export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5-src
    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    # 使profile生效
    . /etc/profile
    # 测试是否成功
    jps
    hdfs
    
    # 分发
    scp /etc/profile node02:/etc/
    scp /etc/profile node03:/etc/
    scp /etc/profile node04:/etc/
    
  10. 格式化并启动

    # 格式化
    [root@node01 hadoop]# hdfs namenode -format
    # 启动
    [root@node01 hadoop]# start-dfs.sh
    Starting namenodes on [node01]
    node01: starting namenode, logging to /opt/hadoop/hadoop-2.6.5/logs/hadoop-root-namenode-node01.o
    utnode04: starting datanode, logging to /opt/hadoop/hadoop-2.6.5/logs/hadoop-root-datanode-node04.o
    utnode03: starting datanode, logging to /opt/hadoop/hadoop-2.6.5/logs/hadoop-root-datanode-node03.o
    utnode02: starting datanode, logging to /opt/hadoop/hadoop-2.6.5/logs/hadoop-root-datanode-node02.o
    utStarting secondary namenodes [node02]
    node02: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.6.5/logs/hadoop-root-secondar
    ynamenode-node02.out[root@node01 hadoop]# 
    
    

其他节点操作

  1. 登录本地ssh 生成.ssh群文件 ,把node01.pub 写入anaconda-ks.cfg 中,实现node01对其他node的免密登录

    # 使用ssh本地登录,生成.ssh文件夹
    ssh localhost
    # 执行后可以测试 此时node01 ssh访问其他节点可以免密登录
    cat node01.pub >> authorized_keys
    
  2. 使环境变量生效 . /etc/profile

上传测试

# 创建目录
hdfs dfs -mkdir -p /user/root
# 创建文件
for i in `seq 100000`;do echo "test hello $i" >> test.txt;done
# 上传文件(/user/root 默认路径可以省略)
hdfs dfs -D dfs.blocksize=1048576 -put test.txt /user/root
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值