hadoop初读--Packet.getBuffer()

本文详细解析了Hadoop中Packet的getBuffer()方法,涉及如何组装数据包,尤其是在处理小数据和lastPacket时的数据组装过程。通过图解和注释,解释了从数据写入到数据包构建,再到数据发送的关键步骤,包括arraycopy、wrap、mark、put和reset等方法的作用。
摘要由CSDN通过智能技术生成

hadoop初读–Packet.getBuffer()

要回答的飘过的疑惑: 如果创建一个文件,就写入一行几个字节的”helloword”,如何组装一个packet及如何写出?

1.如何组装: out.write(str.getBytes()); 方法调用后数据拷贝到buf[]中.

2.如何写出(写出到DataNode):
1) 关键在于调用了out.close()方法.
out.close()—>out.flushBuffer()—>out.closeInternal()
—>out.flushInternal()—>out.enqueueCurrentPacket().
这一系列时序方法后,将buf[]里的数据刷到currentPacket里,
且设置成最后一个数据包lastPacketInBlock = true,扔到dataQueue里.等待dataStreamer去发送.
2) dataStreamer.run()方法.
关键在于调用了ByteBuffer buf= one.getBuffer();
getBuffer()方法将小字节数据组装成符合packet格式的包,然后发送.

/**
    应用代码
*/
String str = "Hello world";  
   Configuration configuration = new Configuration();  
   FileSystem fs = FileSystem
下载和安装Hadoop 2.7.3版本需要几个步骤: 1. **下载文件**: - 从Apache Hadoop官网(https://hadoop.apache.org/releases.html)下载hadoop-2.7.3.tar.gz,这是Hadoop的二进制包,包含了Hadoop的核心组件。 - 也下载hadoop-eclipse-plugin-2.7.3.jar,这是一个Eclipse插件,用于Eclipse集成开发环境的支持。 - 同时还需要hadop-common-bin-master.zip,这可能是Hadoop的一部分,但通常Hadoop的发行版不会提供单独的common-bin包。 2. **解压二进制包**: 使用tar命令解压hadoop-2.7.3.tar.gz,通常在你的服务器或机器的一个目录下创建一个名为`hadoop-2.7.3`的新目录,并将压缩包解压到其中。 ``` tar -xvf hadoop-2.7.3.tar.gz -C /path/to/your/directory ``` 3. **配置**: 进入解压后的目录,编辑`conf/hadoop-env.sh`等配置文件,设置环境变量如JAVA_HOME、HADOOP_HOME等。如果需要,还需编辑核心配置文件如`core-site.xml`, `hdfs-site.xml`等。 4. **安装Eclipse插件**: 将hadoop-eclipse-plugin-2.7.3.jar放入Eclipse的plugins目录下,然后重启Eclipse以便加载插件。在Eclipse里,你可以通过Help > Install New Software...找到并安装它。 5. **获取common-bin部分**: 如果你需要的是hadoop-common-bin-master.zip,确认它的来源是否可靠。一般情况下,Hadoop发行版已经包含所有必要的binaries。如果确实需要,解压后放到Hadoop的bin目录下即可。 6. **启动服务**: 在Hadoop安装目录下的sbin目录下运行启动脚本(如`start-all.sh`),启动Hadoop的服务。 记得根据你的系统需求进行适当的调整,例如权限设置和网络配置等。安装完成后,检查日志文件以确保一切正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值