①大数据的存储: HDFS
分类: LocalFileSystem (本地文件系统)
DistributedFileSystem(分布式文件系统)
参考配置: fs.defaultFS,默认到core-default.xml文件中找!
默认: fs.defaultFS=file:///: 代表采用本地文件系统!使用LocalFileSystem 作为HDFS的实现!
可以向操作本地文件系统一样来操作HDFS!
在HDFS存储的文件,就存在本地文件系统,Linux存在/目录下!
fs.defaultFS=hdfs://namenode进程所在的主机名:端口号
如果namenode进程在hadoop101这台机器,
设置fs.defaultFS=hdfs://hadoop101:9000,使用DistributedFileSystem,
在HDFS存储的文件,以块的形式,分散存储在各个DataNode节点上!
只能访问NameNode才能对文件进行读写!
通常: 使用HDFS,会使用分布式文件系统!
②大数据的计算: 运行MR程序
分类: ①使用LocalJobRunner运行,在本地运行整个Job
②使用YarnJobRunner运行,将Job提交到YARN上运行,分布式计算!
参考配置: mapreduce.framework.name=local,默认是local,代表使用LocalJobRunner,在本地运行MR
默认到mapred-default.xml中寻找!
设置mapreduce.framework.name=yarn,使用YarnJobRunner运行,需要将程序提交到YARN,需要申请资源
保证ResourceManager进程必须启动!
通常: 在调试MR程序阶段,会使用本地模式!
调试没用问题后,会将程序提交YARN上,使用YARN执行!
本地模式集群:
HDFS使用的是LocalFileSystem,MR默认使用LocalJobRunner运行!
好处: 搭建方便!不需要任何设置! 直接使用即可! 方便调试!
使用HDFS : hadoop fs -ls / : 查看HDFS的根目录
分布式集群:
HDFS使用的是DistributedFileSystem! 需要只要有两个核心进程!
NameNode,DataNode进程必须在启动后,才可以使用HDFS的服务!
MR的计算: 可以选择在本地模式运行(不需要做任何修改)!
指定在YARN上运行(设置mapreduce.framework.name=yarn,保证RM,NM进程已经启动)
伪分布式:
NameNode,DataNode,RM, NM 进程都会启动,将这些进程全部分布在一台机器!
HDFS搭建:
①配置NameNode进程所在的主机名和端口号,配置 fs.defaultFS
修改core-site.xml
设置Hadoop产生数据的保存路径;
②启动NameNode进程
启动之前,先格式化NameNode,格式化其实就是为了生成NameNode工作的目录!
以及记录元数据的Fsimage文件!
hdfs namenode -format(只需要创建时,执行一次即可!)
可以使用: hdfs namenode 直接启动,但是会阻塞当前窗口(不建议)
以守护进程启动: hadoop-daemon.sh start namenode
③启动DataNode进程
hadoop-daemon.sh start datanode
④进程的查看: 使用jps(java process status): 查看所有java进程!
在当前用户使用jps只能查看当前用户启动的java进程!
⑤如果进程启动失败,查看日志:
如果datanode启动失败,查看: hadoop-atguigu-datanode-hadoop101.log
如果namenode启动失败,查看:hadoop-atguigu-namenode-hadoop101.log
可以使用web-ui界面查看HDFS : namenode所在的主机名:50070
搭建YARN :
ResourceManager进程:
①在yarn-site.xml中配置RM进程所在的主机名和端口号!yarn.resourcemanager.hostname=hadoop101
②配置MR在yarn上运行,reduceTask拷贝数据的进程服务名yarn.nodemanager.aux-services=mapreduce_shuffle
以守护进程方式启动: yarn-daemon.sh start resourcemanager
NodeMaanger进程:
以守护进程方式启动: yarn-daemon.sh start nodemanager
使用web-ui界面查看YARN : RM所在的主机名:8088
指定MR在yarn上运行: mapreduce.framework.name=yarn