文档章节

Windows系统使用IntelliJ IDEA 搭建Hadoop的开发调试环境(一)

Hi徐敏
 Hi徐敏
发布于 2015/04/14 21:57
字数 743
阅读 496
收藏 1

准备

Hadoop集群

上一篇讲到的Hadoop环境搭建,开启Hadoop几个服务

./sbin/start-dfs.sh 

./sbin/start-yarn.sh 

./sbin/mr-jobhistory-daemon.sh start historyserver

使用jps查看是否执行成功 命令:start-all.sh已经不推荐使用了。

[root@hadoop01 hadoop-2.6.0]# jps
1941 JobHistoryServer
1665 ResourceManager
1355 NameNode
1977 Jps
1497 SecondaryNameNode

IDEA+MAVEN

安装好IDEA,配置好MAVEN即可

WINDOWS系统账号

(同Linux下的Hadoop运行账号,如root)

如果在Windows中,新建一个账号,用户名为root(必须和Hadoop运行的账号一致,比如叫root、hadoop等等)

新建好之后,注销该账号登录的系统即可,不用在该账号下运行。

搭建

Hadoop

如果在调试HDFS功能,拒绝访问,并且在测试环境下,尝试下述做法

1、  调用hdfs无需使用和运行hadoop用户名一致前提,但是需要到hdfs-site.xml中设置permission=false

<configuration>
 <property>
   <name>dfs.namenode.secondary.http-address</name>
     <value>hadoop01:9001</value>
      </property>

  <property>
     <name>dfs.namenode.name.dir</name>
        <value>file:/usr/hadoop-2.6.0/dfs/name</value>
         </property>

 <property>
   <name>dfs.datanode.data.dir</name>
     <value>file:/usr/hadoop-2.6.0/dfs/data</value>
       </property>

 <property>
   <name>dfs.replication</name>
     <value>2</value>
      </property>

 <property>
   <name>dfs.webhdfs.enabled</name>
     <value>true</value>
      </property>
    <property>
      <name>dfs.permissions</name>
      <value>false</value>
    </property>
</configuration>

IDEA工程

新建一个maven工程:hadoop

1、POM依赖

<dependencies>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.6.0</version>
    </dependency>
</dependencies>

2、新建一个测试类Test

在hadoop中已经通过执行wordcount导入了input和output的fs文件,这里通过hdfs的api进行调试

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

import java.io.InputStream;
import java.net.URI;
/**
 * Created with j360 -> me.h360.hdfs.
 * User: min_xu
 * Date: 2015/4/14
 * Time: 9:05
 * 说明:测试hdfs的文件的情况
 */
public class Test {
    public static void main(String[] args) throws Exception {
        //hdfs的地址
        String uri = "hdfs://192.168.145.128:9000/";
        Configuration config = new Configuration();
        FileSystem fs = FileSystem.get(URI.create(uri), config);

        // 列出hdfs上/tmp/input/目录下的所有文件和目录
        FileStatus[] statuses = fs.listStatus(new Path("/tmp/input"));
        for (FileStatus status : statuses) {
            System.out.println(status);
        }

        // 在hdfs的/tmp/input目录下创建一个文件,并写入一行文本
        FSDataOutputStream os = fs.create(new Path("/tmp/input/test.log"));
        os.write("Hello World!".getBytes());
        os.flush();
        os.close();

        // 显示在hdfs的/tmp/input下指定文件的内容
        InputStream is = fs.open(new Path("/tmp/input/test.log"));
        IOUtils.copyBytes(is, System.out, 1024, true);
    }
}


调试

执行main方法

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
FileStatus{path=hdfs://192.168.145.128:9000/tmp/input/f1; isDirectory=false; length=20; replication=2; blocksize=134217728; modification_time=1428671368587; access_time=1428998938744; owner=root; group=supergroup; permission=rw-r--r--; isSymlink=false}
FileStatus{path=hdfs://192.168.145.128:9000/tmp/input/f2; isDirectory=false; length=25; replication=2; blocksize=134217728; modification_time=1428671368663; access_time=1428998938711; owner=root; group=supergroup; permission=rw-r--r--; isSymlink=false}
FileStatus{path=hdfs://192.168.145.128:9000/tmp/input/test.log; isDirectory=false; length=12; replication=3; blocksize=134217728; modification_time=1428991073630; access_time=1428998938072; owner=root; group=supergroup; permission=rw-r--r--; isSymlink=false}
Hello World!
Process finished with exit code 0

已经把前面生成的fs文件打印出来。

© 著作权归作者所有

共有 人打赏支持
Hi徐敏
粉丝 120
博文 40
码字总数 67954
作品 0
静安
架构师
Linux开发环境搭建之Intellij Idea安装配置

本文将会在Linux环境下安装使用Intellij Idea开发工具,然后在Idea中配置Maven和Tomcat,如果还没有Maven环境,可以参考《Linux开发环境搭建之Maven安装配置 》一文。 一、环境准备 1.Linxu桌...

MaxBill
05/14
0
0
从windows10迁移到Linux Deepin

如题, 这几天从windows系统迁移到deepin的linux系统花了很多时间, 以致最近都没时间来博客园。现在将这几天的成果分享出来, 顺便也做个记录。先不多说, 上一张新系统界面。 其实在装deepin之...

qingshanli
07/24
0
0
IntelliJ IDEA下载及安装教程

IntelliJ IDEA下载及安装教程 分步阅读 IntelliJ IDEA是一款功能强大的开发工具,在代码自动提示、重构、J2EE支持、各类版本工具(如git、svn、github)、maven等方面都有很好的应用。Intelli...

我风依旧
09/18
0
0
IntelliJ IDEA 13 + Genymotion 2.3 开发环境搭建

【声明】 本文来自:http://www.cnblogs.com/smyhvae/p/4013535.html 【有修改】 【正文】 【开发环境】 物理机版本:Win 7旗舰版(32位) Java SDK版本:jdk1.8.0_20(32位) Android SDK版...

Lofo
2014/10/26
0
0
IntelliJ IDEA详细配置和使用教程(适用于Java开发人员)

前言 正所谓工欲善其事必先利其器,对开发人员而言若想提高编码效率,一款高效的开发工具是必不可少的,相信看到该博客的朋友们都已经对IntelliJ IDEA有所了解了,所以此处就不对IntelliJ ID...

君千殇520
08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一个可能的NEO链上安全随机数解决方案

0x00 困境 链上安全随机数生成应该算是一个比较蛋疼的问题,哪怕你的系统再牛逼,合约程序困在小小的虚拟机里,哪怕天大的本事也施展不开。 更悲催的是,交易执行的时候,是在每一个节点都执...

暖冰
今天
1
0
【大福利】极客时间专栏返现二维码大汇总

我已经购买了如下专栏,大家通过我的二维码你可以获得一定额度的返现! 然后,再给大家来个福利,只要你通过我的二维码购买,并且关注了【飞鱼说编程】公众号,可以加我微信或者私聊我,我再...

飞鱼说编程
今天
1
0
Spring5对比Spring3.2源码之容器的基本实现

最近看了《Spring源码深度解析》,该书是基于Spring3.2版本的,其中关于第二章容器的基本实现部分,目前spring5的实现方式已有较大改变。 Spring3.2的实现: public void testSimpleLoad(){...

Ilike_Java
今天
1
0
【王阳明心学语录】-001

1.“破山中贼易,破心中贼难。” 2.“夫万事万物之理不外于吾心。” 3.“心即理也。”“心外无理,心外无物,心外无事。” 4.“人心之得其正者即道心;道心之失其正者即人心。” 5.“无...

卯金刀GG
今天
2
0
OSChina 周三乱弹 —— 我们无法成为野兽

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ _刚刚好: 霸王洗发水这波很骚 手机党少年们想听歌,请使劲儿戳(这里) hahahahahahh @嘻酱:居然忘了喝水。 让你喝可乐的话, 你准忘不了...

小小编辑
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部