初学大数据(二)

对上次的一些细节总结
HDFS写操作:
1)客户端先对数据用block切分计算数据块个数,在HDFS中默认的块大小是128M
2)客户端在切分数据后向NameNode汇报的信息包括整个文件的block数,文件权限,上传时间
3)客户端开始以字节的形式读取数据直到128M
4)客户端请求第一个blocks的存放地址(包含两个备份地址一共是三个)和对应的Id号
5)NameNode根据各个DataNode返回的信息返回负载最小的DataNode地址给client
6)客户端开始上传数据:
为了加快传输的效率,采用并行传输的方式,客户端将一个block分为一个个packet,每个packet大小为64K,将要传输的三个DataNode之间会形成管道,客户端会连接到管道的源头并源源不断地发送一个个packet当数据经过DataNode时,该节点会拷贝该数据
7)在一个block拷贝完成后DataNode会向NameNode汇报存储情况

备份机制(默认备份节点为两个):
1)如果是集群内提交的数据
第一个Block会存储在当前节点
第二个Block会存储到一个不同机架上的一台随机服务器中
第三个Block会存储到和第二台相同的相同机架上的另一台服务器中
其他的均为随机备份

持久化机制
NameNode再启动的时候会生成两个文件,一个是edit(日志文件)一个是fsimage(快照)
随着集群的运行NameNode会将这两个文件交给secondaryNameNode进行重演以产生相同的元数据,在此期间对edit的改写会写入edit.new文件中
该演练触发的机制有两种
1.超过3600S
2.edit文件大小超过64M
在持久化时除了block的位置信息(因为位置信息可能经常发生变动),其余均会被持久化
为了解决位置信息缺失的问题,在每一次重启集群后所有DataNode节点都会向NameNode汇报当前节点的block信息

配置HDFS (伪分布式)
首先安装linux操作系统,以下的演示均在CentOs 6.5下完成
1.配置JDK
因为hadoop采用Java语言编写,所以需要配置JDK环境
先下载jdk包
http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
上传至服务器任意文件夹下
解压 tar -zxvf jdk-8u181-linux-x64.tar.gz(你下载的文件名)
在这里插入图片描述
修改配置文件
vi /etc/profile
在末尾加上


export JAVA_HOME=/usr/java/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$PATH

在这里插入图片描述

控制台输入java -version看是否能打印出JDK版本信息

在这里插入图片描述

2.配置免密登录
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@用户名
可能在第二条命令会出错的,提示无法识别主机名
这时候需要在etc/hosts下配置别名信息
在这里插入图片描述

4.修改hdfs-site.xml配置文件
将以下数据添加到hadoop/etc中的hdfs-site.xml中的<configuration>标签中
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value>
</property>

5.修改core-site.xml配置文件
将以下数据添加到hadoop/etc中的core-site.xml中的<configuration>标签中
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/abc/hadoop/local</value>
</property>

6.修改slaves配置文件,在其中添加用户名

hadoop01

7.格式化NameNode(创建目录以及文件)
#hdfs namenode -format
为了方便使用我们可以配置一下hadoop的环境变量,以后就可以在任意文件下执行hadoop命令

vi /etc/bashrc

在最下面加入

export HADOOP_HOME=/home/vickey/hadoop/hadoop-2.6.5
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH

这里可能会提示javahome未找到或者java not set等错误
这时可以去修改hadoop.env.sh文件
添加这么一句

export JAVA_HOME=/usr/java/jdk1.8.0_181

当提示未找到配置文件目录的错误时,我们可以添加另一句

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

8.启动HDFS

 start-dfs.sh

如果顺利的话控制台会依次启动三个节点,当启动完成后我们可以用jps指令来查看他们的进程
在这里插入图片描述
启动完成后我们可以通过浏览器来查看他的运行情况
在浏览器输入localhost:50070
在这里插入图片描述

另外我们也可以通过主机的浏览器去查看hadoop的运行,在浏览器输入
你虚拟机的ip地址:50070
在这里插入图片描述
或者通过修改C:\Windows\System32\drivers\etc\hosts文件
在这里插入图片描述
如以上的格式修改DNS解析,就可以通过主机名的方式进行访问了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值