一.Hadoop的组成:
1)HDFS 分布式文件系统
2)MapReduce 分布式的离线并行计算框架
3)Hadoop YARN:作业调度与集群资源管理的框架
4)支持其他模块的工具模块
二:Hadoop运行环境的搭建:完成以下8步即可
1.虚拟机网络模式设置为NAT
2.克隆虚拟机
3.修改为静态ip
[root@hadoop101 /]#vim /etc/udev/rules.d/70-persistent-net.rules
删除
eth0
该行;
将
eth1
修改
为
eth0
,
同时复制
物理
ip
地址
2
)
修改
IP
地址
[root@hadoop101 /]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
需要
修改的内容有
5
项
:
IP
ADDR=192.168.1.101
GATEWAY=192.168.1.2
ONBOOT=
yes
BOOTPROTO=
static
DNS1=192.168.1.2
修改
后
:
wq
保存
退出
3
)执行
service network restart
4
)
如果报错,
reboot
,重启虚拟机
4.修改主机名
1.
hostname 查看主机名
2.
vim /etc/sysconfig/network 更改主机名
3.
vim /etc/hosts
添加如下
内容
192.168.83.102 hadoop01
4.reboot重启
5.关闭防火墙
查看防火墙状态 service iptables status
关闭防火墙(永久关闭防火墙) chkconfig iptables off
6.在opt目录下创建文件
1.添加新用户
adduser chenyao
passwd chenyao 密码 回文
2.将新用户设置成和root权限相同
vim /etc/
sudoers
在里面添加 chenyao
ALL=(ALL) ALL
保存退出
即使设置成和root权限相同也无法创建文件夹,在root权限下创建文件夹,然后再修改文件的所有者
[root@hadoop01 ~]# su chenyao
[chenyao@hadoop01 root]$ mkdir model
mkdir: 无法创建目录"model": 权限不够
[chenyao@hadoop01 root]$
3.在opt目录下创建文件夹model software
mkdir model
mkdir software
4.修改文件夹的所有者
chown chenyao model
chown chenyao software
7.安装jdk
1
)
卸载现有
jdk
(
1
)
查询
是否安装
java
软件:
rpm -qa|grep java
(
2
)
如果
安装
的
版本低于
1.7
,
卸载
该
jdk
:
rpm -e
软件
包
2
)
用
filezilla
工具
将
jdk
、
Hadoop-2.7.2.tar.gz
导入到
opt
目录下面的
software
文件
夹下面
3
)
在
linux
系统下的
opt
目录中查看软件包
是否
导入成功。
[root@hadoop101opt]# cd software/
[root@hadoop101software]# ls
jdk-7u79-linux-x64.gz hadoop-2.7.2.tar.gz
4
)
解压
jdk
到
/opt/module
目录
下
tar -zxf jdk-7u79-linux-x64.gz -C /opt/module/
5
)
配置
jdk
环境变量
(
1
)先
获取
jdk
路径:
[root@hadoop101 jdk1.7.0_79]# pwd
/opt/module/jdk1.7.0_79
(
2
)打开
/etc/profile
文件
:
[root@hadoop101 jdk1.7.0_79]# vi /etc/profile
在
profie
文件末尾添加
jdk
路径:
##JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
(
3
)保存
后退出:
:
wq
(
4
)让
修改后的文件生效:
[root@hadoop101 jdk1.7.0_79]# source /etc/profile
(
5
)重启(如果
java –version
可以
用就不用重启):
[root@hadoop101 jdk1.7.0_79]# sync
[root@hadoop101 jdk1.7.0_79]# reboot
6
)
测试
jdk
安装成功
[root@hadoop101 jdk1.7.0_79]# java -version
java version "1.7.0_79"
8安装hadoop
1.先安装
2.解压
3.将hadoop添加到环境变量中
cd /etc/profile
##HADOOP_HOME
export HADOOP_HOME=/opt/model/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
4.执行 source /etc/profile
Hadoop的运行模式
1.本地模式(默认模式):不需要启用单独进程,直接可以运行, 测试和开发的时使用
案例1.:统计单词出现的次数
1.[root@hadoop01 hadoop-2.7.2]# mkdir input
将用户的权限改成 chenyao
2.进入etc目录下的hadoop在,将所有.xml文件拷贝到input
cp *.xml /opt/model/hadoop-2.7.2/input
3.进行查询 在hadoop-2.7.2中
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output01 'dfs[a-z.]+'
4.查看输出结果
cat output
案例2:wordcount案例---》统计某些文件中,某些单词组成的个数
1.在/etc/hadoop下创建一个新的文件夹winput
[chenyao@hadoop01 hadoop-2.7.2]$ mkdir winput
2.在wordcount中创建文件夹 wc.input(文件名和后缀名可以随便起)
[chenyao@hadoop01 winput]$ touch wc.input
3.在wc.input文件中 vim wc.input 在里面写单词,有重复的
4.在hadoop-2.7.2中执行
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar
wordcount
wcinput wcoutput
其中 wordcount是计算单词出现的次数
5.cd woutput/
[chenyao@hadoop01 woutput]$ ll
总用量 4
-rw-r--r--. 1 chenyao chenyao 37 1月 28 15:30 part-r-00000
-rw-r--r--. 1 chenyao chenyao 0 1月 28 15:30 _SUCCESS
[chenyao@hadoop01 woutput]$ cat part-r-00000
chenwenyi 3
chenyao 2
zhangyongtai 2
2.伪分布式模式(等同于完全分布式,只有一个节点)
伪分布式有两种:
1.HDFS上运行MapReduce程序
2.YARN上运行MapReduce程序
一:HDFS上运行MapReduce程序
分析需要准备的:
安装jdk,配置环境变量,安装hadoop,配置环境变量,配置集群,启动、测试集群增、删、查,在HDFS上执行wordcount案例
执行步骤: 配置集群之前上面已经发过步骤,以下从配置集群开始
配置集群
1. 配置 hadoop-env.sh 在etc/hadoop下 vim hadoop-env.sh 配置JAVA_HOME
- 配置 core-site.xml
[chenyao@hadoop01 root]$ cd /opt/model/hadoop-2.7.2/etc/hadoop/
[chenyao@hadoop01 hadoop]$ ll
[chenyao@hadoop01 hadoop]$ vim core-site.xml
在里面添加配置
---》
<!-- 指定HDFS中NameNode的地址 -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
</configuration>
《增加namenode保存的地址》
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
3.配置hdfs-site.xml--->指定hdfs副本的数量
<property>
<name>
dfs.replication
</name>
<value>
1
</value>
</property>
启动集群
1.格式化namenode(第一次启动格式化)
bin/hdfs namenode -format
2.启动namenode
sbin/
hadoop-daemon.sh start namenode
3.启动datanode
sbin/hadoop-daemon.sh start datanode
操作集群
1.在hdfs文件系统上创建一个input文件夹
[chenyao@hadoop01 hadoop-2.7.2]$ hadoop fs -mkdir -p /user/atguigu/wcinput
其中-p意思是可以创建多级目录
2.将测试文件内容上传到文件系统上
[chenyao@hadoop01 hadoop-2.7.2]$ hadoop fs
-put
winput/wc.input /user/atguigu/wcinput
将文件
winput/wc.input放到
/user/atguigu/wcinput中
3.查看上传的文件是否正确(可以直接下载下来,但是如果文件过大的时候可以直接看)
[chenyao@hadoop01 /]$ hadoop fs -cat /user/atguigu/wcinput/wc.input
4.运行mapreduce程序
[chenyao@hadoop01 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/wcinput /user/atguigu/wcoutput
输入文件
/user/atguigu/wcinput
输出文件
/user/atguigu/wcoutput
5.查看输出结果
[chenyao@hadoop01 hadoop-2.7.2]$ hadoop fs -cat /user/atguigu/wcoutput
6.将测试文件内容下载到本地
hadoop fs -get /user/atguigu/wcoutput/p* ./ 将文件下载到当前目录
7.删除输出结果
hadoop fs -rm -r
/user/atguigu/wcoutput
二:YARN上运行MapReduce程序
待续。。
3.完全分布式(多个节点一起运行)
待续。。
注1:如果哪里错了,查看日志文件可以分析错误!!
注2:用jps发现没有namenode。
因为文件保存路径的问题,注意路径是mkdir tmp 不是 touch tmp
注3:需要格式化的时候,关掉namenode和datanode后要删掉tmp,logs里面的东西。否则下次datanode会连不上新的namenode