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

各机器及角色信息:

共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  

步骤:

因为Hadoop依赖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,增加如下内容:

<!-- hdfs的访问名称及端口 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://namenode01:9000</value>
                <description>The name of the default file system.</description>
        </property>

<!-- 临时目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/tmp</value>
                <description>A base for other temporary directories.</description>
        </property>

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4e47313cce27d3724e27dbf540fdc542.html