hadoop集群安装配置


写在前面:
博主本人用的是13年的廉价pc机,硬件有限,所以用4台虚拟机,一主三从的形式搭建了一个hadoop集群,并没有搭建高可用的集群,下面为整体步骤:
1、修改主机名  /etc/sysconfig/network
2、修改hosts文件 /etc/hosts
3、安装jdk
4、安装hadoop
5、修改配置文件
6、克隆虚拟机
7、修改各个机器上的hosts,主机名
8、配置ssh
9、格式化nanenode
10、启动
=====================================================
机器准备:
虚拟机四台:系统选择,CentOS6.5
安装用户:hadoop用户,给hadoop用户配置sudo权限(非root用户)
主机名         ip地址             节点
hadoop01  192.168.111.3  namenode secondarynamenode resourceManager
hadoop02  192.168.111.4  datanode nodeManager
hadoop03  192.168.111.5  datanode nodeManager
hadoop04  192.168.111.6  datanode nodeManager
具体虚拟机安装不在这里描述
1、修改主机名
cd /etc/sysconfig
vi network
在network中添加:
NETWORKING=yes
HOSTNAME=hadoop01
========
2、修改hosts文件
vi /etc/hosts

=======
3、安装jdk
准备jdk1.8.tar.gz包
解压缩到/mnt/apps: tar -zxvf jdk1.8.tar.gz -C /mnt/apps
配置环境变量:
(切换到root用户或者添加sudo前缀)vi /etc/profile
在profile中添加环境变量,并运行profile
export JAVA_HOME=/mnt/apps/jdk1.8.0_51
export JRE_HOME=/mnt/apps/jdk1.8.0_51/jre
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASS_PATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

添加完成后要source profile
检查是否配置成功 : java -version
=======
4、安装hadoop
准备hadoop-2.6.4.tar.gz包
解压缩到$home/apps:tar -zxvf hadoop-2.6.4.tar.gz -C ~/apps
配置环境变量:
(切换到root用户或者添加sudo前缀)vi /etc/profile
在profile中添加环境变量,并运行profile
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
添加完成后要source profile
=======
5、修改hadoop的配置文件
hadoop的配置文件在${hadoop_home}/etc/hadoop
主要修改的配置文件有

hadoop-env.sh
在这里需要配置java_home
整体配置如下:
export JAVA_HOME=/mnt/apps/jdk1.8.0_51

core-site.xml
在这里需要配置指定的文件系统(当然是hdfs了),以及namenode的ip
配置hadoop的工作临时路径,需要提前建立
整体配置如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.111.3:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop-2.6.4/tmp</value>
</property>
</configuration>

hdfs-site.xml
在这里主要配置hdfs的一些属性,包括namenode工作路径,datanode工作路径,副本数量(dfs.replication),secondarynamenode节点的ip和端口
整体配置如下
<configuration>
<property>   
  <name>dfs.namenode.name.dir</name>
  <value>/home/hadoop/hdpdata/name</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>/home/hadoop/hdpdata/data</value>
</property>
<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>
<property>
  <name>dfs.secondary.http.address</name>
  <value>192.168.111.3:50090</value>
</property>
</configuration>


mapred-site.xml
在这里需要配置mapreduce计算程序使用的资源调度框架,我们用的是yarn
整体配置如下
<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

yarn-site.xml
在这里需要配置yarn资源调度框架的老大,也就是resourceManager的节点信息,以及mapreduce中map和reduce中间的计算过程:shuffle(其实这么说不是很准确,因为yarn并不知道你运行了mr程序,他仅仅通过container进行封装分配资源,隔离运行的程序)
整体配置如下:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.111.3</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
</configuration>

slaves
这里配置hadoop启动的时候,自动启动的从节点
添加datanode的主机名:
hadoop02
hadoop03
hadoop04
=======
6、克隆机器
一台机器的配置基本到此结束,接下来借助vmware的克隆功能,克隆出3台机器,分别修改主机名为hadoop02,hadoop03,hadoop04
=======
7、配置ssh免密登录 ,在这里不再解答,自行百度两个命令
******配置主机之间的免密ssh登陆
假如 A  要登陆  B
在A上操作:
%%首先生成**对
ssh-******   (提示时,直接回车即可)
%%再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中
ssh-copy-id   B
=======
8、在hadoop01格式化nanenode
hadoop namenode -format
=======
9、启动
start-dfs.sh
start-yarn.sh
查看启动情况
1、查看集群状态
命令:   hdfs  dfsadmin  –report
2、通过webui界面访问
=======
常见问题:
1、配置文件拼错了
2、权限问题,不要用root用户启动hadoop
3、namenode格式化多次
4、移步到大神总结的