随笔分类 - [技术]Hadoop
摘要:先放上命令:hadoop jar /usr/hadoop-1.2.1/contrib/streaming/hadoop-streaming-1.2.1.jar -mapper mapper.py -file mapper.py -reduce reduce.py -file reduce.py -f...
阅读全文
摘要:1. 重命名pig job name:在Pig脚本中的一开始处,写上这一句:set job.name 'This is my job';2. 设置pig参数:允许pig时,输入如下:pig -p JOBNAME="MyJob" test.pig************test.pig********...
阅读全文
摘要:搭建了一个Hadoop的环境,Hadoop集群环境部署在几个Linux服务器上,现在想使用windows上的Java客户端来操作集群中的HDFS文件,但是在客户端运行时出现了如下的认证错误。 错误的详细描述如下: org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security .AccessContro...
阅读全文
摘要:1、Hadoop生态系统 2、HDFS(Hadoop分布式文件系统) 源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。 是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。 Cl...
阅读全文
摘要:1. HDFS体系结构HDFS支持大文件,以流的方式访问数据,数据分布在数据节点(Data Node),文件的元数据保存在名字节点(Name Node)。名字节点的内存大小,决定了HDFS文件系统可保存的文件数量,所以大量小文件会影响名字节点的性能(尽管名字节点内存都较大)。1.1 数据块Block...
阅读全文
摘要:1、Java动态代理实例 Java 动态代理一个简单的demo:(用以对比Hadoop中的动态代理) Hello接口: public interface Hello { void sayHello(String to); void print(String p); } Hello接口的实现类: public class HelloImp...
阅读全文
摘要:IPC链接上长时间没有发生远程调用,客户端会发送一个心跳消息给服务器端,用于维护链接。
Connection的lastActivity用来记录上次发生IPC通信的时间。 Connection.touch方法更新lastActivity为当前时间,在setupIOstream和receiveResponse中被调用。
lastActivity和当前时间超过某个值(在${ipc.ping.inte...
阅读全文
摘要:建立IPC连接 IPC Client通过调用getConnection获取IPC连接,具体流程图如下: 服务器端的IPC连接代码分散在Listener和Server.Connection中。
Listener.run() 实现了NIO中的选择器循环。如下代码: //Listener构造函数
public Listener() throws IOException { addre...
阅读全文
摘要:与IPC相关的代码在org.apache.hadoop.ipc包下。共七个文件,其中4个辅助类: RemoteException Status VersionedProtocol ConnectionHeader 主要实现类3个: Client Server RPC 客户端Client: 如上图: 与IPC连接相关的 Clien...
阅读全文
摘要:Java NIO和阻塞IO的区别:
阻塞I/O在调用InputStream.read()方法时是阻塞的,它会一直等到数据到来时(或超时)才会返回;同样,在调用ServerSocket.accept()方法时,也会一直阻塞到有客户端连接才会返回,每个客户端连接过来后,服务端都会启动一个线程去处理该客户端的请求。 阻塞I/O的缺点: 1. 当客户端多时,会创建大量的处理线程。且每个线程都要占用栈空...
阅读全文
摘要:在单独的线程中,检查多个通道是否可以进行IO操作。 Selector创建:静态工厂方法创建 Selector selector = Selector.open(); 注册通道 channel.configureBlocking(false);
SelectionKey key = channel.register(selector, Selectionkey.OP_READ)...
阅读全文
摘要:channel与流的区别: 流基于字节,且读写为单向的。
通道基于快Buffer,可以异步读写。除了FileChannel之外都是双向的。 channel的主要实现: FileChannel
DatagramChannel:UDP读写
SocketChannel:TCP读写
ServerSocketChannel 支持scatter/gather(分散和聚集) 分散(scatte...
阅读全文
摘要:Java NIO的核心部件: Buffer
Channel
Selector Buffer
是一个数组,但具有内部状态。如下4个索引: capacity:总容量
position:下一个要读取/写入的元素索引
limit:限制,第一个不能读取/写入的元素索引
mark:位置标记,重置position
//通过调用Buffer.mark()方法,可以标记Buffer中的一个特定positio...
阅读全文
摘要:被代理的接口特点: 1. 不能有重复的接口,以避免动态代理类代码生成时的编译错误。 2. 这些接口对于类装载器必须可见,否则类装载器将无法链接它们,将会导致类定义失败。 3. 需被代理的所有非 public 的接口必须在同一个包中,否则代理类生成也会失败。 4. 接口的数目不能超过 65535,这是
阅读全文
摘要:服务器端代码如下:
IHello接口: import java.rmi.Remote;
import java.rmi.RemoteException; public interface IHello extends Remote { /** * @return return hellowold * @throws java.rmi.RemoteExcepti...
阅读全文
摘要:From: http://blog.csdn.net/yinan9/article/details/16805275 环境:CentOS 5.10(虚拟机下) [root@localhost hadoop]# lsb_release -a LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics...
阅读全文
摘要:Hadoop序列化:Long 和Int---变长编码的方法: 如果整数在[ -112, 127] ,所需字节数为1,即第一个字节数就表示该值。 如果大于127,则第一个字节数在[-120,-113]之内,正数字节数为(-112-第一个字节)---最多八个字节。 如果小于-112,则第一个字节数在[-128,-121]之内,负数字节数为(-120-第一个字节)---最多八个字节。...
阅读全文
摘要:Doug Cutting
Lucene(索引引擎)---Nutch(搜索Data抓取)---Hadoop 1997:Lucene
2003:GFS
2004:NDFS\MapReduce\Nutch
2006: (Yahoo! Facebook NewYorkTimes) Hadoop
2008: HBase Zookeeper Mahout
2009: Pig\ Hive Hadoop...
阅读全文
摘要:Google added two new features to Google Maps: collaborative editing and importing of KML/ KMZ files. Jess Lee in the official Google Lat Long blog explains the first feature, multi-user My Maps:[M]ult...
阅读全文