Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7110736
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 服务器与存储

2015-11-10 22:52:17

Hadoop分布式安装及其集群配置笔记

[日期:2015-11-10] 来源:Linux社区  作者:bornot [字体:  ]

各机器及角色信息:

共10台机器,hostname与ip地址映射在此不做赘述。此为开发环境安装,所以不考虑将NameNode和SecondaryNameNode安装在同一台机器。

节点

角色

namenode01 namenode
namenode02 secondarynamenode
datanode01 datanode
datanode02 datanode
datanode03 datanode
datanode04 datanode
datanode05 datanode
datanode06 datanode
datanode07 datanode
datanode08 datanode

步骤:

因为依赖JDK环境,必须先进行JDK安装,步骤另行参考资料。此处默认已经安装过JDK环境,并做过环境变量配置。

一、设置各节点ssh免密码登录

1.进入到当前用户的.ssh目录下

cd ~/.ssh

2.执行ssh公钥生成命令,出现确认选项直接回车即可

ssh-keygen –t rsa

3.生成:id-rsa、id-rsa.pub两个文件,执行命令将.pub文件放入到认证文件中

cat id-rsa.pub >> authorized_keys

自此本机的ssh免密码登录已经设置完成,可以执行命令:ssh localhost 进行验证,不需密码直接登入即为成功。

4.剩下9台机器如法炮制。都完成本机ssh-免密码登录之后,将各节点的authorized_keys拷贝汇总到一台机器,分别追加到authorized_keys中。此处是将nn02以及dn0*全部拷贝到nn01上,执行:

cat authorized_keys_* >> authorized_keys

5.此时所有节点都可对nn01进行免密码登录,然后将nn01的authorized_keys拷贝到其余节点,覆盖原来的authorized_keys即可。

避免一台一台复制,可以写一个简单的脚本,实现群体复制,代码如下供参考:(脚本名称:scpFile 使用方法:脚本第一个参数表示源文件,第二个参数是要拷贝到其余节点的位置路径,ex: ./scpFile ~/.ssh/authorized_keys ~/.ssh/ )

#/bin/bash

# HostName which is copying files to.
ipNum="namenode02 datanode01 datanode02 datanode03 datanode04 datanode05 datanode06 datanode07 datanode08"

# Path of source file
#src="/home/sys/hadoop-2.6.1/etc/hadoop/hadoop-env.sh"
src=$1

# Destination of the file moved
#dest="/home/sys/hadoop-2.6.1/etc/hadoop/"
dest=$2

# Execute copying operation
for next in ${ipNum}
do
#      echo ${next}
      scp -r ${src} root@$next:${dest}
      echo "Copy file to root@${next}:${dest} is done!~"
done

二、关闭防火墙

1.暂时性关闭防火墙

service iptables stop

2.设置开机不启动防火墙

chkconfig iptables off

3.查看防火墙状态

service iptables status

三、解压hadoop包,并修改配置

1.解压hadoop压缩包,指定到 /home/sys/ 目录

tar –zxvf hadoop-2.6.1.tar.gz –C /home/sys/

2.增加hadoop的环境变量到 /etc/profile 中:

export HADOOP_HOME=/home/sys/hadoop-2.6.1

export PATH=.:$HADOOP_HOME/bin:$PATH

3.修改配置文件,共8个(hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、masters、slaves)

cd $HADOOP_HOME/etc/hadoop/

在hadoop-env.sh和yarn-env.sh中指定 JAVA_HOME:

export JAVA_HOME=/home/sys/jdk1.8.0_65

编辑core-site.xml,增加如下内容:


       
                fs.defaultFS
                hdfs://namenode01:9000
                The name of the default file system.
       

       
       
                hadoop.tmp.dir
                /home/tmp
                A base for other temporary directories.
       

编辑hdfs-site.xml,增加如下内容:


                dfs.namenode.name.dir
                /home/dfs/name
               
                        Directory where HDFS name node store the name table(fsimage).
               

       

       
                dfs.datanode.data.dir
                /home/dfs/data
               
                        Directory where HDFS data node store blocks.
               

       

       
       
                dfs.namenode.checkpoint.dir
                /home/dfs/namesecondary
               
                        Determines where on the local filesystem the DFS secondary
                        name node should store the temporary images to merge.
               

       

       
                dfs.replication
                2
               
                        HDFS block replication.
               

       

       
                dfs.blocksize
                134217728
               
                        HDFS storage blocksize.
               

       

        
       
       
                dfs.namenode.http-address
                namenode01:50070
               
                        The address and the base port where the dfs namenode web ui will listen on.
               

       

       
                dfs.namenode.secondary.http-address
                namenode02:50090
               
                        The secondary namenode http server address and port.
               

       

       
                dfs.namenode.checkpoint.period
                3600
               
                        The number of seconds between two periodic checkpoints.
               

       

编辑mapred-site.xml,增加如下内容:


                mapreduce.framework.name
                yarn
               
                        The runtime framework for executing MapReduce jobs.
                        Can be one of local, classic or yarn.
               

       

编辑yarn-site.xml,增加如下内容:


                yarn.nodemanager.aux-services
                mapreduce_shuffle
               
                        the valid service name should only contain a-zA-Z0-9_ and can not start with numbers
               

       

  
       
       
                The hostname of the RM.
                yarn.resourcemanager.hostname
                namenode01
       

创建文件 masters,增加如下内容:(实现namenode和secondarynamenode分离)

namenode02

修改文件 slaves,增加如下内容:

datanode01
datanode02
datanode03
datanode04
datanode05
datanode06
datanode07
datanode08

将hadoop文件夹拷贝到其他节点,使用上面的脚本scpFile

scpFile /home/sys/hadoop-2.6.1 /home/sys/

二、集群启动

格式化操作,进入到namenode01的hadoop根目录下,执行:

bin/hadoop namenode –format

出现Successfully字样的时候,即为格式化成功

注意:如果需要再次及多次格式化namenode,一定把hdfs-site.xml中dfs.datanode.data.dir目录清空一下,否则会造成重新格式化后DataNode启动不起来的问题。

          因为该目录下有一个版本号,多次格式化可能导致DataNode和NameNode的版本号不一致。

启动dfs文件系统

sbin/start-dfs.sh

  验证,jps命令查看:

          namenode01上出现NameNode进程

          namenode02上出现SecondaryNameNode进程

          datanode0*上出现DataNode进程

  即为启动dfs成功

启动yarn

sbin/start-yarn.sh

  验证,jps命令查看:

          namenode01上出现ResourceManager进程

          datanode0*上出现NodeManager进程

  即为启动yarn成功

三、修改hadoop启动日志目录

修改namenode、datanode节点默认日志目录

编辑hadoop-env.sh,修改HADOOP_LOG_DIR

export HADOOP_LOG_DIR=your path

修改resourcemanager、nodemanager日志目录

编辑yarn-env.sh,修改YARN_LOG_DIR

if [ "$YARN_LOG_DIR" = "" ]; then
  YARN_LOG_DIR="your path"

四、去除本地库加载失败的警告信息

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

原因:Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题

修改加载本地库的日志级别

编辑 $HADOOP_HOME/etc/hadoop/log4j.properties,增加如下内容:

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

下面关于Hadoop的文章您也可能喜欢,不妨看看:

14.04下Hadoop2.4.1单机/伪分布式安装配置教程  

安装和配置Hadoop2.2.0  

Ubuntu 13.04上搭建Hadoop环境 

Ubuntu 12.10 +Hadoop 1.2.1版本集群配置 

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) 

Ubuntu下Hadoop环境的配置 

单机版搭建Hadoop环境图文教程详解 

更多Hadoop相关信息见 专题页面 

本文永久更新链接地址

阅读(920) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~