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       注:具配置过程,不具备介绍了,网上很多。

一、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 

相关实践学习
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
11月前
|
编译器 C++ 容器
【c++丨STL】基于红黑树模拟实现set和map(附源码)
本文基于红黑树的实现,模拟了STL中的`set`和`map`容器。通过封装同一棵红黑树并进行适配修改,实现了两种容器的功能。主要步骤包括:1) 修改红黑树节点结构以支持不同数据类型;2) 使用仿函数适配键值比较逻辑;3) 实现双向迭代器支持遍历操作;4) 封装`insert`、`find`等接口,并为`map`实现`operator[]`。最终,通过测试代码验证了功能的正确性。此实现减少了代码冗余,展示了模板与仿函数的强大灵活性。
315 2
|
11月前
|
XML 存储 分布式计算
【赵渝强老师】史上最详细:Hadoop HDFS的体系架构
HDFS(Hadoop分布式文件系统)由三个核心组件构成:NameNode、DataNode和SecondaryNameNode。NameNode负责管理文件系统的命名空间和客户端请求,维护元数据文件fsimage和edits;DataNode存储实际的数据块,默认大小为128MB;SecondaryNameNode定期合并edits日志到fsimage中,但不作为NameNode的热备份。通过这些组件的协同工作,HDFS实现了高效、可靠的大规模数据存储与管理。
1334 70
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
452 7
|
SQL 分布式计算 Hadoop
【赵渝强老师】Hadoop生态圈组件
本文介绍了Hadoop生态圈的主要组件及其关系,包括HDFS、HBase、MapReduce与Yarn、Hive与Pig、Sqoop与Flume、ZooKeeper和HUE。每个组件的功能和作用都进行了简要说明,帮助读者更好地理解Hadoop生态系统。文中还附有图表和视频讲解,以便更直观地展示这些组件的交互方式。
913 5
|
算法 Java 程序员
Map - TreeSet & TreeMap 源码解析
Map - TreeSet & TreeMap 源码解析
187 0
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
211 1
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
229 0
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
650 6
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
236 2
|
分布式计算 Java Hadoop
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
Hadoop-30 ZooKeeper集群 JavaAPI 客户端 POM Java操作ZK 监听节点 监听数据变化 创建节点 删除节点
285 1