Hadoop中的SequenceFile系统之一

SequenceFile是一个由二进制序列化过的key/value的字节流组成的文本存储文件。在Hadoop上利用来解决小文件序列化的问题。

最近的项目之中,需要将服务器内的日志文件压缩成一个二进制的序列化文件,考虑到可以Hadoop中的HDFS子项目,可以实现该方法,同时也可以完成分布式的部署。

一.HDFS系统部署安装
首先需要部署安装HDFS系统。
1、准备两台Linux服务器:
192.168.200.101(kf09)作为NameNode节点;
192.168.200.102(kf10)作为DataNode和SecondaryNameNode(不能和NameNode在同一个机器)节点;

补充:大数据中,HDFS集群以Master-Slave模式运行,主要有两类节点:一个Namenode(即Master)和多个Datanode(即Slave)。Namenode管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。

由于Hadoop是由java开发的,所以请大家一开始就把jdk装好,务必关闭防火墙

service iptables stop

2、修改两台服务器的主机名

vi /etc/sysconfig/network

分别修改HostName为
· HOSTNAME=kf09
· HOSTNAME=kf10
注意:此处要分别修改
保存并退出。
reboot
重启服务器,才能完成修改。
3.修改两台服务器的hosts文件

vi /etc/hosts

都添加一下内容
· 192.168.200.101 kf09
· 192.168.200.102 kf10
保存并退出。
4.以下部分在kf09(Namenode节点)上进行

cd /home
tar -zxvf hadoop-1.2.1-bin.tar.gz
cd hadoop-1.2.1/

hadoop-1.2.1-bin.tar.gz为hadoop安装包,可以到Hadoop官网下载。

4.1 配置NameNode和hadoop工作目录

vi core-site.xml

在configuration标签中添加property内容:

<configuration>     
<property>         
<name>fs.default.name</name>         <value>hdfs://kf09:9000</value>     
</property>
<property>         
<name>hadoop.tmp.dir</name>        
<value>/opt/hadoop-1.2.1</value>   
</property>
</configuration>

第一个property配置的是NameNode信息,即NameNode所在机器以及端口
第二个property配置hadoop工作目录

4.2 配置副本数

vi hdfs-site.xml

在configuration标签中添加property内容(不配置的时候默认是3):

<configuration>    
<property>         
<name>dfs.replication</name>
<value>2</value>     
</property></configuration>

4.3 配置DataNode

vi slaves

删除localhost并添加以下节点配置:

kf10(Datanode)

4.3 配置SecondaryNameNode

vi masters

删除localhost并添加以下节点配置:

kf10(SecondaryNameNode)

4.4 配置JAVA_HOME

vi hadoop-env.sh

将export JAVA_HOME之前的注释去掉,
修改jdk路径为:export JAVA_HOME=/usr/java/jdk1.7.0_51
保存并退出
5.配置从kf09到kf10免密码登录

由于DN、NN、SNN都是java进程都需要启动,集群的成功需要每个节点的进程都启动,为了方便快速的能够启动hdfs各节点进程,我们配置ssh免密码登录后,hdfs可以启动所有节点进程,这样不需要每个节点单独启动了。
5.1设置本地ssh免密码登录三个node上都执行:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

(生成私钥和公钥,id_dsa可随意命名)

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

(将公钥内容追加到authorized_keys中)
5.2 拷贝kf09上的公钥id_dsa.pub到kf10
在kf09上:将公钥拷贝到kf10的root目录

cd /root/.ssh
scp id_dsa.pub root@kf10:~

在kf10上:将root目录中kf09传过来的公钥追加到kf10的authorized_keys文件中,

cd ~cat id_dsa.pub >> ~/.ssh/authorized_keys

可以使用

cd .ssh/more authorized_keys 

检查一下kf09的id_dsa.pub是否已经追加成功

5.3免密码登录测试在node1上执行

ssh kf10

应该已经可以免密码登陆了。
6.启动hadoop

6.1将node1的hadoop压缩包拷贝到kf10

scp -r /home/hadoop-1.2.1-bin.tar.gz root@kf10:/home/

6.2在kf10上解压

cd /hometar -zxvf hadoop-1.2.1-bin.tar.gz

6.3将node的配置文件全部拷贝到kf10(保证各节点hadoop一模一样)
在kf09上面:

cd /home/hadoop-1.2.1/conf/
scp ./* root@kf10:/home/hadoop-1.2.1/conf

6.4进行格式化
在kf09上执行:

cd /home/hadoop-1.2.1/bin

格式化

 ./hadoop namenode -format
 ./start-dfs.sh

6.5查看各机器上的hdfs节点状态

[root@kf09 bin]# jps

4471 Jps4337 NameNode

[root@kf10home]# jps

4099 Jps4041 SecondaryNameNode3958 DataNode
从上面可以看出:kf09上有一个NameNode进程
kf10上有一个DataNode进程和一个SecondaryNameNode

6.6关闭hdfs

cd /home/hadoop-1.2.1/bin
./stop-dfs.sh

7.通过浏览器访问hdfs
http://localhost:50070/dfshealth.jsp
可以查看hdfs文件系统,以及健康状态等信息。至此,hdfs安装配置结束。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值