C#、JAVA操作Hadoop(HDFS、Map/Reduce)真實過程概述。組件、源碼下載。無法解決:Response status code does not indicate success: 500。


一、Hadoop環境配置概述

      三台虛擬機,操作系統為:Ubuntu 16.04。

      Hadoop版本:2.7.2

      NameNode:192.168.72.132

      DataNode:192.168.72.135,192.168.72.136

      注:具配置過程,不具備介紹了,網上很多。

二、eclipse(JAVA)環境配置概述

     操作系統:Windows 10

     eclipse版本:Mars.2 Release (4.5.2)

     1.hadoop-eclipse-plugin-2.7.2.jar組件放plugins目錄 下,具體如何配置去網上找。

     2.配置HADOOP_HOME環境變量:E:\hadoop-2.7.2,配置PATH環境變量,增加:%HADOOP_HOME%\bin

     3.下載:winutils.exe和Hadoop.dll兩個文件,放到E:\hadoop-2.7.2\bin下;Hadoop.dll放到Windows\System32下載。

     4.引用hadoop組件包,為了正確性,share\hadoop\common、share\hadoop\hdfs、share\hadoop\mapreduce、share\hadoop\yarn,以及每個目錄下的lib中的jar包全部引用。

     5.新建項目wordcount,網上一大堆代碼,直接復制就行了。

     6.支行效果:

三、VS2015(C#)環境配置概述

      1.增加組件引用,分別Install-Package:Microsoft.Azure.Management.HDInsight、Microsoft.Azure.Management.HDInsight.Job 、Microsoft.Hadoop.WebClient、Microsoft.Hadoop.Hive、Microsoft.Hadoop.MapReduce等5個組件,可能會報WebClient和MapReduce引用的版本號不對,刪除WebClient組件引用,重新在MapReduce下引用WebClient組件。

      2.配置C:\Windows\System32\drivers\etc\hosts文件,192.168.72.132 wxzz-pc、192.168.72.135 wxzz-pc1、192.168.72.136 wxzz-pc2,否則會報無法連接DataNode。

      3.至此myCluster.StorageSystem.LsFiles和myCluster.StorageSystem.Exists是可以正常執行,myCluster.StorageSystem.CopyFromLocal和myCluster.StorageSystem.CopyToLocal一直出現異常。

      4.后來在NameNode上安裝了Hive,myCluster.StorageSystem.CopyFromLocal和myCluster.StorageSystem.CopyToLocal兩個操作才可以正常執行。至此,HDFS的操作沒有問題了。

      5.myCluster.MapReduceJob.Execute執行mapreduce的時候一直會報無法連接“ip:50111”的異常信息

      6.后來配置hive中的webhcat,並且起動服務,myCluster.MapReduceJob.Execute執行又報“Response status code does not indicate success: 500 (Server Error).”異常信息,堆棧信息如下:

StackTrace	
"   在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\r\n   
在 System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)\r\n   在 System.Threading.Tasks.Task.Wait()\r\n   
在 Microsoft.Hadoop.WebClient.WebHCatClient.WebHcatMapReduceStreamingExecutor.Execute(Boolean throwOnError)\r\n   
在 Microsoft.Hadoop.MapReduce.Execution.Hadoop.StreamingJobExecutorBase.ExecuteCore(Type mapper, Type reducer, Type combiner, HadoopJobConfiguration config)\r\n   
在 Microsoft.Hadoop.MapReduce.Execution.Hadoop.StreamingJobExecutorBase.Execute(Type mapperType, Type reducerType, Type combinerType, HadoopJobConfiguration config)\r\n   
在 Microsoft.Hadoop.MapReduce.Execution.Hadoop.StreamingJobExecutorBase.Execute[TMapper,TReducer](HadoopJobConfiguration config)\r\n   
在 Hadoop_Demo.Program.Main(String[] args) 位置 C:\\Users\\WXZZ\\Desktop\\Hadoop_Demo\\Hadoop_Demo\\Program.cs:行號 61"	string

       找遍網絡,這個問題也一直沒有解決掉,其中有個回復,請參考:

       如果是Hdfs協議 的問題,那么StorageSystem操作不會執行成功。而單單是mapreduce執行失敗,我懷疑是否是webhcat配置有問題,或者請求數據協議本身的問題。

四、總結

    只是一個小實驗,還沒有真正的應用的生產環境。一直用C#開發,出現這個問題,無法解決,也是挺無助的。先進行小結,以后慢慢研究。

五、組件和源代碼下載

    http://pan.baidu.com/s/1i48Ln4D


 

1.[連載]《C#通訊(串口和網絡)框架的設計與實現》

2.[開源]C#跨平台物聯網通訊框架ServerSuperIO(SSIO)介紹

2.應用SuperIO(SIO)和開源跨平台物聯網框架ServerSuperIO(SSIO)構建系統的整體方案

3.C#工業物聯網和集成系統解決方案的技術路線(數據源、數據采集、數據上傳與接收、ActiveMQ、Mongodb、WebApi、手機App)

5.ServerSuperIO開源地址:https://github.com/wxzz/ServerSuperIO

物聯網&集成技術(.NET) QQ群54256083 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM