問題:java
method:org.apache.hadoop.hdfs.DomainSocketFactory.<init>(DomainSocketFactory.java:69) The short-circuit local reads feature cannot be used because libhadoop cannot be loaded.node
不能使用local read的優化策略;apache
解決:dom
Hadoop的一大基本原則是移動計算的開銷要比移動數據的開銷小。所以,Hadoop一般是儘可能移動計算到擁有數據的節點上。這就使得Hadoop中讀取數據的客戶端DFSClient和提供數據的Datanode常常是在一個節點上,也就形成了不少「Local Reads」。socket
修改配置以下:oop
<configuration> <property> <name>dfs.client.read.shortcircuit</name> <value>true</value> </property> <property> <name>dfs.domain.socket.path</name> <value>/var/lib/hadoop-hdfs/dn_socket</value> </property> </configuration>
參考:優化
http://blog.csdn.net/jewes/article/details/40189263ui