windows平台下用eclipes链接hadoop 2.7.3 操作hdfs遇到的问题和解决(一)

第一步

  1. eclipse新建maven项目,pom.xml中添加hadoop依赖
    <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>2.7.3</version>
    </dependency>
  2. 新建测试代码,为了解hdfs java api大概(有什么功能,怎么用)
public class HdfsClient {
    FileSystem fs = null;
    @Before
    public void init() throws Exception {
        Configuration configuration = new Configuration();
        configuration.set("fs.defaultFS", "hdfs://master1:9000");
        fs = FileSystem.get(configuration);
    }
    /*
     * 上传一个文件
     */
    @Test
    public void upload() throws Exception {
        fs.copyFromLocalFile(new Path("e://scala/npp_6.9.2_Installer.exe"), new Path("/"));
        fs.close();
    }
    /*
     * 下载一个文件
     */
    @Test
    public void download() throws IllegalArgumentException, IOException {
        fs.copyToLocalFile(new Path("/npp_6.9.2_Installer.exe"), new Path("e://scala"));
        fs.close();
    }
    /*
     * 删除文件
     */
    @Test
    public void delete() throws Exception{
        fs.deleteOnExit(new Path("/npp_6.9.2_Installer.exe"));
        fs.close();
    }
    @Test
    public void somefunction() throws Exception {
        FsStatus status = fs.getStatus();
        System.out.println(status.getCapacity()+"-"+status.getUsed()/1024);
    }
}

test 下载function时报错

(null) entry in command string: null chmod 0644

解决过程

  1. 百度搜
    http://blog.csdn.net/hqwang4/article/details/54669165
  2. 去hadoop官网下载hadoop2.7.3 binary版本,解压–增加系统变量–按上面的文章黏贴libwinutils.lib和winutils.exe到%HADOOP_HOME%/bin下

  3. 至此,下载function可以使用。同时发现copyToLocalFile function会在下载时,如果目标目录中已经存在所copy的文件时,会先执行删除把该文件删除,然后在执行copy操作

    总结

在windows下使用hadoop 的java api需要注意兼容性
1,具体解决兼容性的原理
2,可以尝试windows下编译hadoop

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Eclipse中实现切换账号的监听操作,可以通过以下步骤实现: 1. 在Eclipse中创建一个Java项目,并创建一个登录界面的类和一个切换账号的类。 2. 在登录界面的类中,创建一个“切换账号”按钮,并为其添加一个ActionListener监听器,如下所示: ```java JButton switchBtn = new JButton("切换账号"); switchBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 创建切换账号的窗口 SwitchAccountDialog dialog = new SwitchAccountDialog(); dialog.setVisible(true); } }); ``` 这段代码创建了一个名为 switchBtn 的 JButton 对象,并通过 addActionListener() 方法为其添加一个监听器。当用户点击该按钮时,会调用 actionPerformed() 方法中的代码。 3. 在切换账号的类中,实现切换账号窗口的UI和逻辑。例如,可以创建一个继承自JDialog的SwitchAccountDialog类,并在其中添加账号列表、输入框、确定按钮等组件,同时为确定按钮添加一个ActionListener监听器,如下所示: ```java public class SwitchAccountDialog extends JDialog { private JComboBox<String> accountList; private JTextField passwordField; public SwitchAccountDialog() { // 设置窗口大小和布局 setSize(300, 200); setLayout(new BorderLayout()); // 创建账号列表和密码输入框 accountList = new JComboBox<String>(new String[] {"账号1", "账号2", "账号3"}); passwordField = new JTextField(); // 添加组件到窗口中 JPanel panel = new JPanel(new GridLayout(3, 2)); panel.add(new JLabel("选择账号:")); panel.add(accountList); panel.add(new JLabel("输入密码:")); panel.add(passwordField); panel.add(new JButton("确定")); panel.add(new JButton("取消")); add(panel, BorderLayout.CENTER); // 为确定按钮添加监听器 ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent e) { // TODO: 实现切换账号的逻辑 dispose(); } }; ((JButton)panel.getComponent(4)).addActionListener(listener); } } ``` 这段代码创建了一个名为SwitchAccountDialog的类,并在其中创建了一个窗口,包含账号列表、密码输入框和确定、取消按钮等组件。当用户点击确定按钮时,会调用 ActionListener 中的 actionPerformed() 方法,程序员可以在该方法中实现切换账号的逻辑。 4. 在登录界面的类中,实现切换账号窗口的显示逻辑。例如,可以创建一个继承自JDialog的SwitchAccountDialog类,并在其中添加账号列表、输入框、确定按钮等组件,同时为确定按钮添加一个ActionListener监听器,如下所示: ```java JButton switchBtn = new JButton("切换账号"); switchBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 创建切换账号的窗口 SwitchAccountDialog dialog = new SwitchAccountDialog(); dialog.setVisible(true); } }); ``` 这段代码创建了一个名为 switchBtn 的 JButton 对象,并通过 addActionListener() 方法为其添加一个监听器。当用户点击该按钮时,会调用 actionPerformed() 方法中的代码。 5. 在Eclipse中编译和运行程序,测试切换账号功能是否正常。 以上就是在Eclipse中实现切换账号的监听操作的步骤,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值