使用eclipse 在远程hadoop集群上在线运行和调试mapreduce程序
使用eclipse 在远程hadoop集群上在线运行和调试mapreduce程序
yinkaipeng 发表于3年前
使用eclipse 在远程hadoop集群上在线运行和调试mapreduce程序
  • 发表于 3年前
  • 阅读 146
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 在对hadoop集群有了一定的了解并且自己搭建了一个简单的hadoop集群,然后就想开始对mapreduce编程的学习。但是问题来了,我习惯使用的是Windows操作系统,而我的集群使用的是完全分布式并且在远程Linux主机上。如何在Windows操作系统上的eclipse连接远程hadoop集群呢?下面是我的总结。

前提:

1.我使用的hadoop是hadoop-2.3.0-cdh5.1.0.tar

2.以下是我的hadoop核心配置文件的配置:

core-site.xml

<configuration>

                <property>

                                <name>fs.defaultFS</name>

                                <value>hdfs://master:9000</value>

                </property>

       <property>

                                <name>io.file.buffer.size</name>

                                <value>131072</value>

       </property>

       <property>

                                <name>hadoop.tmp.dir</name>

                                <value>file:/home/yinkaipeng/tmp</value>

                                <description>Abase for other temporary directories.</description>

                </property>

        <property>

               <name>hadoop.proxyuser.hduser.hosts</name>

               <value>*</value>

       </property>

                 <property>

               <name>hadoop.proxyuser.hduser.groups</name>

               <value>*</value>

       </property>

</configuration>


hdfs-site.xml

<configuration>

       <property>

                <name>dfs.namenode.secondary.http-address</name>

               <value>master:9001</value>

        </property>

         <property>

                  <name>dfs.namenode.name.dir</name>

                 <value>file:/usr/local/data/dfs/name</value>

            </property>

           <property>

                    <name>dfs.datanode.data.dir</name>

                    <value>file:/usr/local/data/dfs/data</value>

            </property>

            <property>

                     <name>dfs.replication</name>

                     <value>3</value>

             </property>

             <property>

                     <name>dfs.webhdfs.enabled</name>

                     <value>true</value>

         </property>

</configuration>

mapred-site.xml

<configuration>

                <property>

                                <name>mapreduce.framework.name</name>

                                <value>yarn</value>

                </property>

                <property>

                                <name>mapreduce.jobhistory.address</name>

                                <value>master:10020</value>

                </property>

                <property>

               <name>mapreduce.jobhistory.webapp.address</name>

               <value>master:19888</value>

       </property>

</configuration>


yarn-site.xml

<configuration>

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

        <property>

               <name>yarn.resourcemanager.address</name>

               <value>master:8032</value>

       </property>

                <property>

               <name>yarn.resourcemanager.scheduler.address</name>

               <value>master:8030</value>

               </property>

               <property>

                       <name>yarn.resourcemanager.resource-tracker.address</name>

                        <value>master:8031</value>

               </property>

               <property>

                       <name>yarn.resourcemanager.admin.address</name>

                        <value>master:8033</value>

               </property>

                <property>

               <name>yarn.resourcemanager.webapp.address</name>

               <value>master:8088</value>

       </property>

</configuration>

在hadoop2.0 中如果不配置zookeeper,只需将你将你的datanode加入slaves文件中即可。

hadoop集群配置好后,然后就是使用eclipse进行连接啦!

好的,我使用的是:hadoop-eclipse-plugin-2.2.0,从网上下载的。

下面开始我们开始工作。

  1. 启动hadoop集群

  2. hadoop-eclipse-plugin-2.2.0拷贝到eclipse的plugins 目录下,启动eclipse。

如现在就进行连接的话不会成功的。因为我们用的是Windows所以还需要进行以下步骤:

  1. 将电脑当前用户名改为hadoop的启动用户名

  2. eclipse连接hadoop源码目录,将hadoop-common-2.2.0-bin-master的bin目录考到eclipse的workspace



  3. 注:上面hadoop目录为我从Linux系统上下载的解压后的hadoop。

    到这里操作hdfs就没问题了,如果要运行mapreduce还会报错,进行以下两步:

    1.将hadoop源码中的org.apache.hadoop.io.nativeio加到项目中,并进行以下修改:



2.在我们的mapreduce的main函数中注入hadoop本地目录地址环境变量。

ok!这下就可以在Windows上进行hadoop集群的mapreduce在线调试了!

如果有问题可以留言交流哦!共同学习共同进步!

共有 人打赏支持
粉丝 0
博文 9
码字总数 8858
×
yinkaipeng
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: