大数据基础之hdfs3

1、hdfs的副本的配置

修改hdfs-site.xml文件

<!-- 注释配置数据块的冗余度,默认是3 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--注释配置HDFS的权限检查,默认是true-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hsiehchou122:50090</value>
</property>

需要同步到其它机器:

scp hdfs-site.xml hsiehchou122:$PWD
scp hdfs-site.xml hsiehchou123:$PWD
scp hdfs-site.xml hsiehchou124:$PWD

这里我划重点(亲自经历)
如果原来的分布式hadoop集群的主节点有Secondary NameNode,需要配置到其他节点,因为如果主节点挂了,其也是挂了,它的作用是在HDFS中提供一个检查点,相当于NameNode的助手节点
职责是:合并NameNode的edit logs到fsimage文件中

2、hadoop启动方式

1)启动hdfs集群
start-dfs.sh
2)启动yarn集群
start-yarn.sh
3)启动hadoop集群
start-all.sh

3、大数据干什么的

1)海量数据的存储(mysql/oracle)
分布式文件系统hdfs
dfs->Hdfs
mapreduce->mapreduce
bigtable->hbase
分而治之!

2)海量数据的计算
分布式计算框架mapreduce
配置checkpoint时间

<property>
<name>dfs.namenode.checkpoint.period</name>
<value>7200</value>
</property>

systemctl set-default graphical.target由命令行模式更改为图形界面模式
systemctl set-default multi-user.target由图形界面模式更改为命令行模式

4、hdfs-namenode工作机制

0、加载编辑日志与镜像文件到内存(NameNode)
edits_0001
edits_0002
fsimage fsimage fsimage
1、客户端发起命令(client)
hdfs dfs -ls /
2、滚动正在写的edits(NameNode)
3、记录操作日志更新 滚动日志(NameNode)
4、拷贝到Secondary NameNode
NameNode请求是否需要checkpoint

Secondary NameNode
触发checkpoint条件:
1、定时的时间
2、edits中数据已满
Secondary NameNode请求执行checkpoint
5、加载内存进行合并
6、生成镜像fsimage.checkpoint
7、拷贝到NameNode
8、NameNode对fsimage.checkpoint重命名成fsimage

hadoop2.8.4

安装部署
1)准备工作
设置主机名:vi /etc/hostname
注意:需要重启 reboot
设置映射:vi /etc/hosts
设置免密登录:ssh-keygen
ssh-copy-id hd-01

2)安装jdk
上传安装包
CRT:alt+p
解压
tar -zxvf .tar.gz
配置环境变量

export JAVA_HOME=/root/hd/jdk1.8.0_192
export PATH=$JAVA_HOME/bin:$PATH

注意:需要source /etc/profile
分发jdk
scp jdk hd-02:/root/hd
scp /etc/profile hd-02:/etc/
source /etc/profile

3)安装hadoop
上传安装包
alt + p
解压
tar -zxvf .tar.gz
修改配置文件
core-site.xml

<property>
<name>fs.defaultFS</name>
<value>hdfs://hsiehchou121:9000</value>
</property>

hdfs-site.xml

<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hd/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hd/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hsiehchou122:50090</value>
</property>

mapred-site.xml

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

yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name>
<value>hsiehchou121</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

配置环境变量

export HADOOP_HOME=/root/hd/hadoop-2.8.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

修改slaves文件加入从节点
格式化namenode
hadoop namenode -format
启动:start-all.sh

hadoopMapReduce

官方:Apache™Hadoop®项目开发了用于可靠,可扩展的分布式计算的开源软件
Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理
大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和
存储。该库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用层的故
障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障
阿里的Flink(9000万欧元) Blink

MapReduce分布式计算程序的编程框架。基于hadoop的数据分析的应用
MR优点:
1)框架易于编程
2)可靠容错(集群)
3)可以处理海量数据(1T+ PB+) 1PB = 1024TB
4)拓展性,可以通过动态的增减节点来拓展计算能力

MapReduce的思想

数据:海量单词
hello reba
hello mimi
hello liya
mimi big
需求:对每个单词出现的次数统计出来
思想:分而治之!
解决方式:
1)每个单词记录一次(map阶段)
<hello,1> <reba,1> <hello,1> <mimi,1>
2)相同单词的key不变,value累加求和即可(reduce阶段)
<hello,1+1+1>
对数据进行计算

对wordcount例子程序分析

1)整个wordcount分为几个阶段?
三个
2)有哪几个阶段?
mapper
reducer
driver
3)每个阶段有什么作用
mapper:对数据进行打散<hello,1><mimi,1>
reducer:对数据进行聚合<hello,1+1+1>
driver:提交任务
4)详解

Mapper阶段

将数据转换为String
对数据进行切分处理
把每个单词后加1
输出到reducer阶段

Reducer阶段

根据key进行聚合
输出key出现总的次数

Driver阶段

创建任务
关联使用的Mapper/Reducer类
指定mapper输出数据的kv类型
指定reducer输出的数据的kv类型
指定数据的输入路径与输出路径
提交

hadoop数据类型

我们看到的wordcount程序中的泛型中的数据类型其实是hadoop的序列化的数据类
型。
为什么要进行序列化?用java的类型行不行?(可以)
Java的序列化:Serliazable太重。
hadoop自己开发了一套序列化机制。Writable,精简高效。海量数据。
hadoop序列化类型与Java数据类型

Java数据类型Hadoop序列化类型
intIntWritable
longLongWritable
booleanBooleanWritable
byteByteWritable
floatFloatWritable
doubleDoubleWritable
StringText
wordcount测试

1)本地模式
2)集群模式
hadoop jar .jar wordcount /wc/in /wc/out

hadoop jar mapreduce-1.0-SNAPSHOT.jar 全类名 /wc/in /wc/out

转载于:https://www.cnblogs.com/hsiehchou/p/10403445.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值