Hadoop的安装和简介和伪分布式

hadoop简介

一、hadoop中的组件

HDFS(框架):负责大数据的存储
YARN(框架): 负责大数据的资源调度

MR(编程模型): 使用Hadoop制定的编程要求,编写程序,完成大数据的计算

完成大数据的计算步骤:
(1)写程序,程序需要复合计算框架的要求
java —>main—>运行
MapReduce(编程模型)----》Map–Reducer
(2) 运行程序,申请计算资源(cpu+内存,磁盘IO,网络IO)
java—>JVM—>OS—>申请计算资源
MapReduce(编程模型)—>jar—>运行时,将jar包中的任务,提交给YARN,和YARN进行通信,由YARN中的组件---->JVM—>申请计算资源

HDFS
负责大数据的存储
核心进程:
必须进程:
Namenode(1个):负责文件,名称等元数据(属性信息)的存储
文件名,大小,文件切分多少块(block),修改和创建时间等。
接受客户端的请求,接受DN的请求,向DN分配任务。
Datanode:负责文件中数据的存储!
负责接收NM分配的任务!
负责数据块(block)的管理。
可选进程:
SecondaryNamenode(N个):负责辅助Namenode的工作。

MapReduce
MapReduce(编程规范):程序中有Mapper(简单处理)和Reduce(合并)
遵循MapReduce的编程规范,编写的程序,打包后,出称为一个Job。
Job需要提交到YARN上,向YARN申请计算资源,运行Job中的Task。
Job会先创建一个进程MRAppMaster(mapreduce应用管理者),由MRAppMaster向YARN申请资源!
MRAppMaster负责监控Job中各个Task运行情况,进行容错管理!

YARN
YARN负责集群所有资源的管理!
常见进程:

ResourceManager(1个):负责接受客户端提交的Job请求
负责向NM分配任务。
负责接受NM上报的信息。
NodeManager(N个):负责单台计算机所有资源的管理!
负责领取RM分配的任务!
负责为Job中的每个Task分配经计算资源。
Container(容器): NodeManager为Job的某个Task分配了2个CPU和2G内存的计算资源!
为了防止当前Task在使用这些资源期间,被其他的task抢占资源!
将计算资源,封装到一个Container中,在Container中的资源,会被暂时隔离!无法被其他进程所抢占!
当前进程Task
结束后,当前的Container中的资源会被释放!允许其它task来使用!

二、Hadoop的安装

1.hadoop安装的前提是本机已经安装了jdk,配置了JAVA_HOME变量
2.在Hadoop中启动多种不同类型的进程
例如NN,DN ,RM,NM,这些进程需要通信!
在通信时,常用主机名需要进行通信!
需要在集群的每台机器上,配置集群中所有机器的host映射!
Linux: /etc/hosts
3.注意权限:hadoop框架运行需要产生很多数据,数据的保存目录,必须让当前启动hadoop进程的用户拥有写权限。
4.关闭防火墙,设置开机不自启动。
5.bin:使用HDFS和运算MR时,常用的目录!
sbin:管理员启动和停止集群使用的命令!
etc:hadoop配置文件所在的目录!
share:存放hadoop的依赖jar包,文档,和官方案例
lib:存放hadoop的本地库(对数据进行压缩解压缩功能)
使用HDFS:
HDFS的运行模式:
取决于参数:fs.default:///(默认),在core-default.xml中!
(1)本地模式:在本机上使用HDFS,使用的就是本机的文件系统
fs.default:///
(2)分布式模式:要使用的文件系统是一个分布式文件系统!
一个分布式文件系统,必须由NN,DN等若干进程共同运行完成文件系统的读写操作!
fs.defaultFS=hdfs://
启动NN:hadoop-daemon.sh start namenode
停止NN:hadoop-daemon.sh stop namenode
启动DN:hadoop-daemon.sh start datanode
停止DN: hadoop-daemon.sh stop datanode
使用: hadoop fs 命令 文件路径

运行MapReduce:
(1)按照MR的规范编写一个程序
(2)将程序打包为jar
(3)运行jar中的程序
两种运行模式:
取决于参数:mapreduce.framework.name=local(默认)
1.本地模式(在本机上运行MR):mapreduce.framework.name=local
在本机上运行MR!在本机使用多线程的方式,运行多个Task!
2.在YARN上运行 mapreduce.framework.name=yarn
将MR提交给YARN,由YARN将Job中的多个task分配到多台机器中,启动container运行task,需要启动YARN,YARN由RM和NM进程组成!

hadoop配置文件
hadoop安装后,hadoop的性能取决于用户的配置!
4个默认配置文件:
位置: HADOOP_HOME/share/xxxx.jar/xxx-default.xml
core-default.xml: 设置hadoop最核心的参数!
hdfs-default.xml 保存的是hdfs相关的参数!
mapred-default.xml: MR程序在运行时,需要使用的参数!
yarn-default.xml: yarn在启动时,需要的参数!
4个用户可以自定义的配置文件:xxx-site.xml
ore-site.xml: 用户自定义的设置hadoop最核心的参数!
hdfs-site.xml 用户自定义的保存的是hdfs相关的参数!
mapred-site.xml: 用户自定义的MR程序在运行时,需要使用的参数!
yarn-site.xml: 用户自定义的yarn在启动时,需要的参数!

用户自定义的配置文件,可以覆盖默认配置文件中同名的参数的值!
Hadoop在启动时,先加载4个默认的配置文件,再加载用户自定义的配置文件,如果用户自定义的配置文件
中有和4个默认配置文件中门的参数,可以覆盖之前已经加载的值!

三、HDFS的安装和启动

(1)在$HADOOP_HOME/etc/hadoop/core-site.xml文件

<property>
  <name>fs.defaultFS</name>
  <!-- 告知NN在哪个机器,NN使用哪个端口号接收客户端和DN的RPC请求. -->
  <value>hdfs://mypc:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
</configuration>

(2)格式化Namenode(只格式化一次)
命令:hadoop namenode -format
目的:生成生成/opt/module/hadoop-2.7.2/data/tmp目录
在目录中生成fsimage_0000000000000000000文件
(3)启动和关闭Namenode
hadoop-daemon.sh start namenode
hadoop-daemon.sh stop namenode
(4)启动和关闭Datanode
hadoop-daemon.sh start datanode
hadoop-daemon.sh stop datanode
(5)查看
Jps
通过浏览器访问 http://NN所在的主机名/ip:50070
如果NN和DN都在一台机器上,且只有一个DN节点,称为伪分布式!

四、在YARN上运行MR

(1)修改$ HADOOP_HOME/etc/hadoop/mapred-site.xml文件

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

(2)启动YARN
配置MR到底在哪个机器启动
修改$HADOOP_HOME/etc/hadoop/yarn-site.xml文件

<property>
<name>yarn.resourcemanager.hostname</name>
<value>mypc</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
 		<name>yarn.nodemanager.aux-services</name>
 		<value>mapreduce_shuffle</value>
</property>	

(3)启动RM,NM
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
(4)查看
jps
http://RM所在的主机名/ip:8088

五、提交任务

hadoop jar jar包 主类名 参数{多个输入目录,一个输出目录}
输入目录中必须全部是文件
输出目录必须不存在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值