各机器及角色信息:
共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,增加如下内容:
编辑hdfs-site.xml,增加如下内容:
Directory where HDFS name node store the name table(fsimage).
Directory where HDFS data node store blocks.
Determines where on the local filesystem the DFS secondary
name node should store the temporary images to merge.
HDFS block replication.
HDFS storage blocksize.
The address and the base port where the dfs namenode web ui will listen on.
The secondary namenode http server address and port.
The number of seconds between two periodic checkpoints.
编辑mapred-site.xml,增加如下内容:
The runtime framework for executing MapReduce jobs.
Can be one of local, classic or yarn.
编辑yarn-site.xml,增加如下内容:
the valid service name should only contain a-zA-Z0-9_ and can not start with numbers
创建文件 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相关信息见 专题页面
本文永久更新链接地址: