Hadoop教程-全分布搭建

1. 集群规划

    Master         slave1        slave2
    NameNode       DataNode      DataNode 
    jps            jps           jps
    DataNode       NodeManager   NodeManager
    NodeManager
    ResourceManager
    SecondaryNameNode

2. 前置环境配置

2.1 编辑网卡配置文件

vi /etc/sysconfig/network-scripts/ifcfg-eth33 

具体配置如下

TYPE=Ethernet 
BOOTPROTO=static 
IPADDR=xxx.xxx.xxx.xxx 
NETMASK=255.255.255.0 
DEFROUTE=yes 
IPV4_FAILURE_FATAL=no 
NAME=ens33 
UUID=9e407345-679e-4b89-8264-7fde2f6c86c9 
DEVICE=ens33 
ONBOOT=yes

重启网络服务

service network restart 

2.2 关闭Linux***

查看***状态: #firewall-cmd --state
执行关闭命令: #systemctl stop firewalld.service
再次执行查看***命令: # firewalld-cmd --state
执行开机禁用***自启命令 : #systemctl disable firewalld.service 

2.3 修改主机名

三台分别修改主机名

vi /etc/hostname 

将localhost分别改为

master ,slave1,slave2(重启后有效)

配置主机映射文件

vi /etc/hosts 
xxx.xxx.xxx.xxx master 
xxx.xxx.xxx.xxx slave1 
xxx.xxx.xxx.xxx slave2

2.4 配置免密钥登录

三台机器都需执行

ssh-keygen –t rsa (三次回车) 
进入.ssh目录 
ssh-copy-id master 
ssh-copy-id slave1 
ssh-copy-id slave

3. jdk安装

3.1 解压jdk并配置环境变量

解压jdk到当前目录

tar -zxvf /opt/data/jdk-7u80-linux-x64.tar.gz -C /usr/local/software 

进入/usr/local/software目录修改文件名

mv jdk1.7.0_80/  jdk 

编辑配置文件,配置环境变量

vi /etc/profile 
// set java environment 
export JAVA_HOME /usr/local/software/jdk 
export PATH=$JAVA_HOME/bin:$PATH 
保存退出 

生成配置文件 #

source /etc/profile 

查看版本

java -version

4. hadoop安装

4.1 解压并配置hadoop环境

执行以下命令解压Hadoop安装包

tar -zxf /opt/data/hadoop-2.6.4.tar.gz –C /usr/local/software/ 

改名

mv /usr/local/software/hadoop-2.6.4 /usr/local/software/hadoop 

增加hadoop环境变量
编辑 /etc/profile文件,添加以下内容:

vi /etc/profile 
export HADOOP_HOME /usr/local/software/hadoop/ 
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH 

生成配置文件

source /etc/profile

4.2 创建相关目录

创建相关目录

mkdir /var/hadoop 
mkdir /var/hadoop/namenode 
mkdir /var/hadoop/disk1 
mkdir /var/hadoop/disk2 
mkdir /var/hadoop/tmp 
mkdir /var/hadoop/logs

修改相关目录权限

chmod 777 /var/hadoop 
chmod 777 /var/hadoop/namenode 
chmod 777 /var/hadoop/disk1 
chmod 777 /var/hadoop/disk2 
chmod 777 /var/hadoop/tmp 
chmod 777 /var/hadoop/logs

5. Hadoop配置

5.1 修改hadoop-env.sh文件

JAVA_HOME=/usr/local/software/jdk

5.2 修改core-site.sh文件

<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://master:9000</value> 
</property> 
<property> 
    <name>hadoop.tmp.dir</name> 
    <value>/var/hadoop/tmp</value> 
</property>

5.3 修改hdfs-site.sh文件

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/var/hadoop/namenode</value> 
</property> 
<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/var/hadoop/disk1,/var/hadoop/disk2</value> 
</property>

5.4 修改mapred-site.sh文件

mv mapred-site.xml.template  mapred-site.xml
<property> 
    <name>mapreduce.framework.name</name> 
    <value>yarn</value> 
</property>

5.5 修改yarn-site.sh文件

<property> 
    <name>yarn.resourcemanager.hostname</name> 
    <value>master</value> 
</property> 
<property> 
    <name>yarn.nodemanager.aux-services</name> //nodemanager上运行的附属服务 
    <value>mapreduce_shuffle</value>   // 配置成mapreduce_shuffle才可运行MR程序 
</property> 

5.6 修改slave文件

master 
slave1 
slave2

6. 配置子节点

6.1 将hadoop和创建的相关目录复制到其它节点

scp –r /usr/local/software/hadoop slave1:/usr/local/software/ 
scp –r /usr/local/software/hadoop slave2:/usr/local/software/
scp –r /var/hadoop slave1:/var/ 
scp –r /var/hadoop slave2:/var/

6.2 修改子节点数据块文件

将两个子节点中disk1、disk1分别修改为disk3、disk4,disk5、disk6,同时对应的hdfs-site.sh文件中内容也做相应修改。

7. 启动hadoop集群

7.1 格式化namenode

hdfs namenode -format

7.2 启动hadoop

start-all.sh

查看进程

Master         slave1        slave2
NameNode       DataNode      DataNode 
jps            jps           jps
DataNode       NodeManager   NodeManager
NodeManager
ResourceManager
SecondaryNameNode