hadoop配置及無法移動檔案到hdfs故障解析

來源:互聯網
上載者:User

標籤:

首先博主用的64位ubuntu,hadoop官方只提供32位版本,這樣的話啟動本地庫無法相容,需要自己編譯為64位版本,或下載別人編譯好的64位版本。

下載好需要在etc/hadoop目錄下改動以下幾個配置

其中hadoop-env.sh中需要指定JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75

core-site.xml配置

<configuration><property><name>fs.default.name</name><value>hdfs://xiao:9000/</value></property><property><name>hadoop.native.lib</name><value>true</value><description>Should native hadoop libraries, if present, be used.</description></property><property><name>hadoop.tmp.dir</name><value>/home/xiao/download/hadoop-2.4.0/tmp/</value></property></configuration>

hdfs-site.xml配置

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

mapred-site.xml配置

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>

yarn-site.xml配置

<configuration><property><name>yarn.resourcemanager.hostname</name><value>xiao</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property></configuration>

配置好後啟動需要關閉防火牆以及安裝好ssh

sudo apt-get update

sudo apt-get install openssh-server

然後格式化namenode

hadoop namenode -format

然後切換到sbin目錄下啟動

start-dfs.sh

start-yarn.sh

查看目錄下檔案

hadoop fs -ls hdfs://xiao:9000/

拷貝本地檔案到hdfs下

hadoop fs -put a.txt hdfs://xiao:9000/

這一步樓主遇到一個故障

嘗試了網上各種辦法無效。

看了下logs裡面的日誌其中datanode日誌無錯誤,namenode日誌報上述錯誤,可見跟datanode無關,用命令查看datanode狀態

按照report的資料DFS還剩下(541.63 MB)的大小,應該是可以建立的,但是拋出了這個異常,肯定是對DATANODE的剩餘最小容量做了限制。

查了一下HADOOP 2.2.0的源碼,org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault的方法isGoodTarget中,會對DATANODE的剩餘容量進行判斷:

long remaining = node.getRemaining() -                      (node.getBlocksScheduled() * blockSize);     // check the remaining capacity of the target machine    if (blockSize* HdfsConstants.MIN_BLOCKS_FOR_WRITE>remaining) {      if(LOG.isDebugEnabled()) {        threadLocalBuilder.get().append(node.toString()).append(": ")          .append("Node ").append(NodeBase.getPath(node))          .append(" is not chosen because the node does not have enough space ");      }      return false;    }

然後博主清空了下目錄裡面的檔案,剩餘大小為900多M,再執行下命令,成功。

hadoop配置及無法移動檔案到hdfs故障解析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.