Hadoop本地模式
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决,海量数据的存储和海量数据的分析计算问题。
1、Hadoop的组成
Hadoop HDFS:一个高可靠高吞吐量的分布式文件系统;
Hadoop MapReduce:一个分布式的离线并行计算框架;
Hadoop YARN:作业调度与集群资源管理的框架;
Hadoop Common:支持其他模块的工具模块;
2、Hadoop的安装方式
本地独立模式
不需要启动单独进程,直接运行就可以了,测试和开发时使用;
伪分布式模式
等同于全分布式模式,只不过只有一个节点;
全分布式模式
多个节点一起运行;
3、Hadoop使用
3.1、centos的安装
在使用VM安装centos的时候,注意网络连接选择NAT连接,利用 NAT,虚拟机和主机系统将共享一个网络标识,此标识在网络以外不可见。
3.2、centos配置、克隆
1、关闭所有防火墙
# 查看防火墙状态
chkconfig iptables --list
# 若存在开启状态 建议关闭
chkconfig iptables off
# 重启生效
sync
reboot
2、本机配置hosts文件
修改本机hostname为Hadoop101,为后面全分布式做准备。
# hostname 查看当前主机名
# 切换root用户 su root
vim /etc/hostname
# 直接修改主机名即可
# 修改hosts文件
vim /etc/hosts
192.168.159.101 Hadoop101
192.168.159.102 Hadoop102
192.168.159.103 Hadoop103
192.168.159.104 Hadoop104
3、配置静态IP地址
vim /etc/sysconfig/network-scripts/ifcfg.eth0
# 修改为
DEVICE=eth0
TYPE=Ethernet
UUID=f0e33ab7-55cc-4598-94a3-530acc958cd3
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
HWADDR=00:0C:29:61:77:78
IPADDR=192.168.159.101
GATEWAY=192.168.159.2
DNS1=192.168.159.2
NETMASK=255.255.255.0
注意,修改的数据要和虚拟机保持一致。并测试虚拟机是否可以ping通主机以及网络百度。
4、关机、克隆
关闭虚拟机Hadoop101,右键管理进行克隆操作。
5、修改克隆体
克隆体创建完毕后,对克隆体修改如下:
物理网卡:
vim /etc/udev/rules.d/70-persistent-net.rules
# 来自于原体
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:61:77:78", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:80:71:ca", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# 改为
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:80:71:ca", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
网络:
只需要修改物理ip和ip地址就可以了。
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=f0e33ab7-55cc-4598-94a3-530acc958cd3
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
HWADDR=00:0C:29:61:77:ac
IPADDR=192.168.159.102
GATEWAY=192.168.159.2
DNS1=192.168.159.2
NETMASK=255.255.255.0
主机名:
vim /etc/sysconfig/network
hostname=Hadoop102
重复上述操作,克隆多个子体。
6、配置JDK
# 验证是否已经安装jdk
rpm -qa | grep java
# 若存在 卸载
rpm -ev --nodeps 包名
在opt文件夹下创建module文件夹以及software文件夹,用来存放安装文件以及对应的压缩文件。
操作如下:
1、将jdk导入虚拟机
2、通过tar -zxvf 命令解压JDK
tar -zxvf jdk1.7 -C /opt/module/
3、配置JDK环境变量
export JAVA_HOME=/opt/module/jdk1.7.0_65
export PATH=$PATH:$JAVA_HOME/bin
4、测试JDK安装成功与否
java命令测试
# 注意,你的centos若是32位数,需要使用32位数的JDK。
7、配置Hadoop
1、解压文件到/opt/module
tar -zxvf hadoop-2.7.2-tar.gz -C /opt/module/
2、配置Hadoop
# 配置hadoop-env.sh文件
vim etc/hadoop/hadoop-env.sh
# 添加
export JAVA_HOME=/opt/module/jdk1.7.0_65
3、配置环境变量
vim /etc/profile
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
4、测试
hadoop命令测试
4、Hadoop本地独立模式
grep案例-其实就是从大量文件中找到符合匹配规则的数据以及个数。
1、hadoop-2.7.2下创建input文件夹
mkdir input
2、将hadoop下的xml文件复制到input文件夹,充当数据源
cp etc/hadoop/*.xml input/
3、执行share目录下的mappreduce程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z]+'
4、查看结果
查看生成的文件part-r-00000
cat part-r-00000
从上述一堆配置文件中查到了一个满足正则的数据dfsadmin