当前位置:   article > 正文

搭建hadoop单机环境_配置单机hadoop 环境

配置单机hadoop 环境

hadoop 笔记

  • sbin: 一些启动脚本 【服务端的 server bin】
  • logs: 存放 hadoop 相关日志
  • bin: 客户端的脚本
  • etc: hadoop 相关的配置文件

格式化文件系统

配置免密码登录

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 1
  • 2

# 启动 namenode
# sbin/hadoop-daemon.sh start namenode
# 启动 datanode
# sbin/hadoop-daemon.sh start datanode

# 格式化文件系统, 硬盘啥的会被清除掉
bin/hdfs namenode -format
sbin/start-dfs.sh
jps
# jps 查看进程是否启动
# 没启动,因为默认 hadoop 是没有配置好的, 可以看 logs文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

配置 启动

参考官方文档

hadoop 支持伪分布式环境使用,也就是 单个节点就能跑,不需要跑多个机器

参考博客

etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

web界面使用

我是在 ubuntu 虚拟机里面使用的,这里关闭一下防火墙才能访问

sudo ufw status
sudo ufw disable

# 访问web界面: http://192.168.56.103:9870/dfshealth.html#tab-overview
  • 1
  • 2
  • 3
  • 4

hadoop 文件操作命令

文件上传

文件上传

  • copyFromLocal 将本地文件拷贝到 hdfs 里面

# -moveFromLocal 会把本地的文件给删除掉

hadoop fs -copyFromLocal bashrc_bak  /bashrc

# 追加文件内容到 文件最后

hadoop fs -appendToFile bashrc_bak  /bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

java代码操作 hdfs的接口

创建文件夹

将 localhost:9000 修改 为 0.0.0.0 , 不然 宿主机可能无法连上虚拟机的 hdfs端口

<configuration><configuration>
       <!--指定namenode的地址--><!--指定namenode的地址-->
   <property><property>
               <name>fs.defaultFS</name><name>fs.defaultFS</name>
               <value>hdfs://0.0.0.0:9000</value><value>hdfs://0.0.0.0:9000</value>
   </property></property>
   <!--用来指定使用hadoop时产生文件的存放目录--><!--用来指定使用hadoop时产生文件的存放目录-->
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
@SpringBootTest
class HadoopxApplicationTests {

    @Test
    void contextLoads() throws IOException, URISyntaxException, InterruptedException {
        System.out.println("hello world");
        Configuration conf = new Configuration();
        var fs = FileSystem.get(new URI("hdfs://ubuntu:9000"), conf, "root");
        boolean isSuccess = fs.mkdirs(new Path("/tmpdir"));
        System.out.println(isSuccess);
        Assert.assertEquals(true, isSuccess);
        if (fs != null) {
            fs.close();
        }
    }

}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/804410
推荐阅读
相关标签
  

闽ICP备14008679号