Eclipse 运行MapReduce 错误 以及参考解决方法

Hadoop Shuffle秘钥错误
本文解决了一个在使用Hadoop进行MapReduce作业时遇到的问题:生成shuffle秘钥时出现的错误。该问题由HmacSHA1KeyGenerator未找到引起,并通过更换JRESystemlibrary为JDK自带的JRE得以解决。
Exception in thread "main" java.io.IOException: Error generating shuffle secret key
        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:476)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296)
        at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
        at org.apache.hadoop.mapreduce.Job.submit(Job.java:1293)
        at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314)
        at test123.EventCount.main(EventCount.java:93)
Caused by: java.security.NoSuchAlgorithmException: HmacSHA1 KeyGenerator not available
        at javax.crypto.KeyGenerator.<init>(KeyGenerator.java:158)
        at javax.crypto.KeyGenerator.getInstance(KeyGenerator.java:207)
        at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:473)
        ... 8 more
        
        
        

更换JRE System library ,换成jdk下面的jre,不要用外面的jre,因为jdk中的jre中才有生成秘钥的相关类



<think>嗯,用户想在CentOS 7上配置MapReduce开发环境并集成Eclipse。首先,我需要回忆一下相关的步骤,可能需要安装Java、Hadoop,然后配置Eclipse插件。记得之前有引用提到Hadoop 2.6和Eclipse整合的步骤,可能需要用ant编译插件。用户可能已经安装了Eclipse,但需要确认版本是否兼容。另外,引用中提到了需要手动安装的Eclipse,所以可能需要下载特定版本的Eclipse IDE for Java Developers,如引用2提到的。 接下来,步骤应该包括安装JDK,因为Hadoop依赖Java。然后安装Hadoop,配置环境变量,修改Hadoop的配置文件,比如core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml。这部分可能需要设置正确的路径和端口,比如HDFS的地址和端口号,确保本地模式或伪分布式模式正确运行。 然后是Eclipse插件的编译,引用1提到了使用git克隆仓库,然后用ant编译,指定eclipse.home和hadoop.home的路径。用户需要注意这两个路径是否正确,否则编译可能失败。编译成功后,将生成的jar文件放到Eclipse的plugins目录下,重启Eclipse应该就能看到Hadoop的插件了。 配置Eclipse的时候,需要添加MapReduce的Perspective,并设置Hadoop的安装路径。可能还需要配置运行参数,比如输入输出路径,以及确保HDFS上有测试文件,如引用4中提到的上传test.txt的例子。用户可能需要测试一个WordCount程序,确保整个环境搭建成功。 用户可能遇到的问题包括环境变量配置错误、插件编译失败、Eclipse无法识别Hadoop插件,或者运行时出现类路径错误。需要提醒用户检查路径是否正确,尤其是JDK和Hadoop的版本是否兼容,比如Hadoop 2.6可能需要Java 7或8。另外,ant编译时需要安装ant工具,可能需要通过yum安装。 还要注意,在配置Hadoop时,伪分布式模式需要启动HDFS和YARN服务,可能需要格式化namenode,并启动相关服务。如果用户遇到连接问题,可能是防火墙设置或者端口未开放,需要检查CentOS的防火墙状态,或者关闭防火墙进行测试。 最后,用户可能需要集成到Spring Boot项目中,如引用5提到的,不过这可能属于后续的开发步骤,当前问题主要是环境搭建。所以回答应该分步骤,详细说明安装、配置、编译插件、集成到Eclipse,以及测试的流程,确保用户能够逐步操作。</think>### 在CentOS 7上搭建MapReduce开发环境及集成Eclipse教程 #### 一、环境准备 1. **安装JDK** Hadoop依赖Java环境,需安装JDK 8或更高版本: ```bash sudo yum install java-1.8.0-openjdk-devel ``` 验证安装:`java -version`。 2. **安装Hadoop** - 下载Hadoop 2.6.0二进制包(或其他兼容版本) - 解压并配置环境变量(编辑`~/.bashrc`): ```bash export HADOOP_HOME=/usr/local/hadoop-2.6.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` - 使配置生效:`source ~/.bashrc`。 3. **配置Hadoop伪分布式模式** 修改以下配置文件(路径:`$HADOOP_HOME/etc/hadoop/`): - **core-site.xml**: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` - **hdfs-site.xml**: ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` - **mapred-site.xml**: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` - **yarn-site.xml**: ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` #### 二、编译Hadoop Eclipse插件 1. **安装Eclipse** 下载Eclipse IDE for Java Developers(Linux x86_64)并解压[^2]。 2. **编译插件** ```bash git clone https://github.com/winghc/hadoop2x-eclipse-plugin.git cd hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin ant jar -Dversion=2.6.0 -Declipse.home=/usr/local/eclipse -Dhadoop.home=/usr/local/hadoop-2.6.0 ``` 编译成功后,生成的插件文件为`build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.6.0.jar`[^1]。 3. **安装插件** 将生成的JAR文件复制到Eclipse的`plugins`目录,重启Eclipse。 #### 三、配置Eclipse集成Hadoop 1. **添加MapReduce开发视图** 打开Eclipse,选择 `Window > Perspective > Open Perspective > Other > Map/Reduce`。 2. **配置Hadoop路径** 进入 `Window > Preferences > Hadoop Map/Reduce`,设置Hadoop安装路径为`$HADOOP_HOME`。 3. **测试WordCount程序** - 创建MapReduce项目,编写WordCount代码。 - 上传测试文件到HDFS(参考命令): ```bash hadoop dfs -put test.txt /input ``` - 运行程序并验证输出[^4]。 #### 四、验证环境 1. **启动Hadoop服务** ```bash hdfs namenode -format start-dfs.sh start-yarn.sh ``` 2. **检查Web界面** 访问`http://localhost:50070`(HDFS)和`http://localhost:8088`(YARN)确认服务状态。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值