一 分布式集群机器规划
本机物理机:
内存32G,硬盘1T, CPUi7 四核
我规划三台虚拟机参与集群,每一台分配3G内存,30G硬盘,CPU 单核。
二 克隆虚拟机
clone--> 修改机器名称-->Full Done --> clone
然后vim/etc/udev/rules.d/70-persistent-net.rules
把第一行删掉
把第二条记录NAME="eth1"改成eth0
然后复制MAC 地址;
sudovim /etc/sysconfig/network-scripts/ifcfg-eth0
然后把刚才复制的MAC地址给粘过去替换掉之前的
然后修改IP地址
重启网络服务
sudoservice network restart
修改主机名:
sudovim /etc/sysconfig/network
HOSTNAME=hadoop-cluster-02
然后添加IP映射在/etc/hosts
sudovim /etc/hosts
192.168.3.100hadoop-cluster-01
192.168.3.101hadoop-cluster-02
192.168.3.102hadoop-cluster-03
重启机器
第三台机器机器也是如此配置
三 Hadoop 分布式集群
我们需要先配好一台机器,然后将配置文件分发到其他节点上。
3.1 先检查环境
JDK是否安装好,如果没装,需要先安装JDK;
3.2 新建目录 /opt/app
sudomkdir -pv /opt/app
3.3 解压hadoop-2.5.0.tar.gz
tar-zxf hadoop-2.5.0.tar.gz -C /opt/app/
3.4 删掉/opt/app/hadoop-2.5.0/share下面的doc
因为这个文件很大,到时分发配置到其他节点的时候很慢。
rm-fr /opt/app/hadoop-2.5.0/share/doc
3.5 设置hadoop-env.sh,mapred-env.sh,yarn-env.shJAVA_HOME路径
cd/opt/app/hadoop-2.5.0/etc/Hadoop
vim hadoop-env.sh
vim yarn-env.sh
vim mapred-env.sh
3.6 配置slaves
192.168.3.100hadoop-cluster-01
192.168.3.101hadoop-cluster-02
192.168.3.102hadoop-cluster-03
3.7 配置core-site.xml
3.8 配置 hdfs-site.xml
3.9 配置yarn-site.xml
3.10 配置mapred-site.xml
首先先从模板拷贝一份,然后重新命名为mapred-site.xml
cpmapred-site.xml.template mapred-site.xml
3.11 发当前服务器这个已经配置好的安装包到其他2台服务器
现在其他两个节点新建目录/opt/app
cd/opt/app
scp-r hadoop-2.5.0/ hadoop@hadoop-cluster-02:/opt/app/
scp-r hadoop-2.5.0/ hadoop@hadoop-cluster-03:/opt/app/
3.12 格式化NM
进入到第一台机器hadoop-cluster-01
cd/opt/app/hadoop-2.5.0/bin/
./hdfsnamenode –format
3.13 启动各个节点
hadoop-cluster-01:
cd/opt/app/hadoop-2.5.0/sbin
./hadoop-daemon.shstart namenode
./hadoop-daemon.shstart datanode
./yarn-daemon.shstart nodemanager
./mr-jobhistory-daemon.shstart historyserver
hadoop-cluster-02:
cd/opt/app/hadoop-2.5.0/sbin
./yarn-daemon.shstart resourcemanager
./yarn-daemon.shstart nodemanager
./hadoop-daemon.shstart datanode
hadoop-cluster-03:
cd/opt/app/hadoop-2.5.0/sbin/
./hadoop-daemon.shstart secondarynamenode
./yarn-daemon.shstart nodemanager
./hadoop-daemon.shstart datanode
四 安装ssh无密钥登录
4.1 检查是否已经装过,如果装过删除
cd/home/hadoop/.ssh
ls-l
如果没有东西,就忽略此步骤,继续往下走;如果已经装过,删除:
rm-rf ./*
4.2 执行ssh-keygen 所有交互的东西都用默认的
此时就会多出来id_rsa和id_rsa.pub两个文件
4.3 用ssh-copy-id将公钥复制到其他机器
#ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
如果不加公钥路径也可以,会自动加上。
ssh-copy-idhadoop-cluster-01
ssh-copy-idhadoop-cluster-02
ssh-copy-idhadoop-cluster-03
然后hadoop-cluster-02& hadoop-cluster-02也按照4.1-4.3的步骤配好
配好之后,我们会发现每一个机器.ssh文件下面都有这几个文件
测试一下,hadoop-cluster-01到其它机器是否需要输入密码
测试成功
五 测试Hadoop分布式集群
5.1 start 所有节点dfs
在hadoop-cluster-01:
/opt/app/hadoop-2.5.0/sbin/start-dfs.sh
查看各节点进程:
5.2 测试 HDFS
创建文件夹
./hdfsdfs -mkdir -p /var/hadoop/input
上传文件
./hdfsdfs -put /opt/app/hadoop-2.5.0/etc/hadoop/core-site.xml
/var/hadoop/input/
查看文件
./hdfsdfs -text /var/hadoop/input/core-site.xml
5.3 测试YARN
./yarnjar /opt/app/hadoop-2.5.0/share/hadoop/mapreduce/hadoop-
mapreduce-examples-2.5.0.jarwordcount /var/hadoop/input /var/Hadoop
/output2
查看生成结果:
./hdfsdfs -cat /var/hadoop/output2/part-r-00000
至此,Hadoop 分布式集群搭建完毕。