本文介绍hadoop集群配置和在windows系统上运用java操作hdfs

安装

http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.1/

sudo apt-get install ssh
sudo apt-get install rsync mkdir /usr/local/hadoop
tar -zxvf hadoop-3.1.1.tar.gz -C /usr/local/hadoop sudo vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1
export PATH=.:${JAVA_HOME}/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile hadoop version

配置

  1. 服务器

    主机名配置
    hostname 查看主机名
    sudo vim /etc/hostname 修改主机名 sudo vim /etc/hosts 添加如下配置
    192.168.76.128 master
    192.168.76.129 worker shutdown -r now 重启电脑 配置集群ssh免密登陆
    cd .ssh
    rm id_rsa id_rsa.pub
    ssh-keygen -t rsa
    进入master主机 cat id_rsa.pub >> authorized_keys
    进入worker主机 ssh-copy-id -i master
    进入master主机 chmod 600 authorized_keys
    进入master主机 scp /root/.ssh/authorized_keys worker:/root/.ssh/ cd /usr/local/hadoop/hadoop-3.1.1/
  2. hadoop-env.sh

    sudo vim etc/hadoop/hadoop-env.sh
    添加如下配置
    export JAVA_HOME=/usr/src/jdk-11.0.1
  3. core-site.xml

    sudo vim etc/hadoop/core-site.xml
    <configuration>
    <!-- 配置NameNode -->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
    </property> <!-- 配置数据目录,用来存放文件 -->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/hadoopdata</value>
    </property>
    </configuration>
  4. hdfs-site.xml

    sudo vim etc/hadoop/hdfs-site.xml
    <configuration>
    <!-- 配置副本数量 -->
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>
    </configuration>
  5. yarn-site.xml

    sudo vim etc/hadoop/yarn-site.xml
    添加如下配置
    <configuration> <!-- 配置管理者-->
    <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
    </property> <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce-shuffle</value>
    </property>
    </configuration>
  6. mapred-site.xml

    cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
    sudo vim etc/hadoop/mapred-site.xml
    添加如下配置
    <configuration>
    <!-- 配置集群运行方式-->
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>mapred.job.tracker</name>
    <value>master:9001</value>
    </property>
    </configuration>
  7. start-dfs.sh

    sudo vim sbin/start-dfs.sh
    添加如下配置
    HDFS_DATANODE_USER=root
    HDFS_DATANODE_SECURE_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
  8. stop-dfs.sh

    sudo vim sbin/stop-dfs.sh
    添加如下配置
    HDFS_DATANODE_USER=root
    HDFS_DATANODE_SECURE_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
  9. start-yarn.sh

    sudo vim sbin/start-yarn.sh
    添加如下配置
    YARN_RESOURCEMANAGER_USER=root
    HDFS_DATANODE_SECURE_USER=yarn
    YARN_NODEMANAGER_USER=root
  10. stop-yarn.sh

    添加如下配置
    YARN_RESOURCEMANAGER_USER=root
    HDFS_DATANODE_SECURE_USER=yarn
    YARN_NODEMANAGER_USER=root
  11. 运行

    进入master运行 hdfs namenode -format               # 格式化
    进入master运行 hdfs --daemon start namenode # 开始文件系统
    进入worker运行 hdfs --daemon start datanode # 开始文件系统
    jps # 查看启动的namenode
    netstat -ant # 查看9870端口是否建立连接 访问 http://master:9870 即可看到管理界面

概念

hdfs集群 负责文件读写,namenode管理,datanode负责存储

yarn集群 为mapreduce程序分配硬件资源,resourcemanager需要单独放在另外一台服务器,nodemanager部署在datanode上

hadoop常用shell命令

hadoop fs -ls /                     查看fdfs根目录
hadoop fs -put file1.txt / 上传文件到fdfs根目录
hadoop fs -cat /file1.txt 查看文件内容
hadoop fs -mkdir -p /tests/test 创建文件夹 运行自带的mapreduce程序
cd /usr/local/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
计算指定/tests/test文件夹下面文件的个数,并且将结果放在/test/count下
hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcount /tests/test /test/count

使用java操作hadoop

  1. 依赖

    缺一不可
    <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>3.1.1</version>
    </dependency>
    <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>3.1.1</version>
    </dependency>
    <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-hdfs</artifactId>
    <version>3.1.1</version>
    </dependency>
  2. 在你当前操作系统中添加host信息

    C:\WINDOWS\system32\drivers\etc\hosts 修改此文件
    192.168.76.128 master
    192.168.76.129 worker
  3. 上传文件

    Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://master:9000");
    FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
    fs.copyFromLocalFile(new Path("F:/test.txt"),new Path("/"));
  4. 下载文件

    下载文件需要当前操作系统也要有hadoop环境,关于windows系统装hadoop环境的步骤如下
    1. http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common 下载一个hadoop版本
    2. http://download.csdn.net/detail/wuxun1997/9841472 下载windows需要的工具包
    3. 解压hadoop并且配置HADOOP_HOME环境变量,并且在PATH里加上%HADOOP_HOME%\bin
    4. 将工具包解压的文件放置在hadoop文件夹的bin目录中,并且将hadoop.dll放置于c:/windows/System32中即可 Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://master:9000");
    FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
    fs.copyToLocalFile(new Path("/test.txt"), new Path("F:/"));
  5. 创建文件夹

    Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://master:9000");
    FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
    fs.mkdirs(new Path("/app/test"));
  6. 列出根目录所有的文件

    Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://master:9000");
    FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
    RemoteIterator<LocatedFileStatus> iterator = fs.listFiles(new Path("/"), true);
    while (iterator.hasNext()){
    LocatedFileStatus next = iterator.next();
    System.out.println(next.getPath());
    }
  7. 列出根目录所有的文件和文件夹

    Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://master:9000");
    FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
    FileStatus[] fileStatuses = fs.listStatus(new Path("/"));
    for (int i = 0; i < fileStatuses.length; i++) {
    FileStatus fileStatus = fileStatuses[i];
    System.out.println(fileStatus.getPath());
    }
  8. 删除文件

    Configuration conf = new Configuration();
    conf.set("fs.defaultFS","hdfs://master:9000");
    FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root");
    fs.delete(new Path("/test.txt"), true);

hadoop集群配置和在windows系统上运用java操作hdfs的更多相关文章

  1. Hadoop集群配置(最全面总结)

    Hadoop集群配置(最全面总结) 通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker.这些机器是masters.余下的机器即作为DataNode也作为Ta ...

  2. 大数据测试之hadoop集群配置和测试

    大数据测试之hadoop集群配置和测试   一.准备(所有节点都需要做):系统:Ubuntu12.04java版本:JDK1.7SSH(ubuntu自带)三台在同一ip段的机器,设置为静态IP机器分配 ...

  3. Hadoop集群配置(最全面总结 )(转)

    Hadoop集群配置(最全面总结) huangguisu 通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker.这些机器是masters.余下的机器即作为Da ...

  4. Hadoop 集群配置记录小结

    Hadoop集群配置往往按照网上教程就可以"配置成功",但是你自己在操作的时候会有很多奇奇怪怪的问题出现, 我在这里整理了一下常见的问题与处理方法: 1.配置/etc/hosts ...

  5. hadoop集群配置方法---mapreduce应用:xml解析+wordcount详解---yarn配置项解析

    注:以下链接均为近期hadoop集群搭建及mapreduce应用开发查找到的资料.使用hadoop2.6.0,其中hadoop集群配置过程下面的文章都有部分参考. hadoop集群配置方法: ---- ...

  6. HADOOP集群配置

    http://wenku.baidu.com/view/92cbe435eefdc8d376ee32eb.html http://www.infoq.com/cn/articles/hadoop-co ...

  7. hadoop集群配置全过程

    一.nat配置1.虚拟机->编辑->虚拟网络编辑器->更改设置->移除原VMnet8->加新的VMnet8->点击NAT模式 桥接模式->NAT模式,初始化一 ...

  8. Hadoop集群配置过程中需要注意的问题

    环境:VMwareWorkstation8.0 和 Ubuntu14.04 1. 使用三台虚拟机搭建Hadoop集群 2. 一定要在每台机器上配置ssh免密码登录 3. 由于需要给/etc/hosts ...

  9. Hadoop集群配置免密SSH登录方法

    Hadoop集群包含1个主节点和3个从节点,需要实现各节点之间的免密码登录,下面介绍具体的实现方法. 一.Hadoop集群环境 二.免密登录原理 每台主机authorized_keys文件里面包含的主 ...

随机推荐

  1. 解决loadrunner在脚本回放时长时间等待及在vugen中create controller scenario时报错的方法!超管用!!

    解决loadrunner在脚本回放时长时间等待及在vugen中create controller scenario时报错的方法 经过咨询,有两种方法.经过实践,下面的方法1有效,方法2无效(我下载安装 ...

  2. is(':visible')

    .end()为结束前面处理函数,返回到最初的元素 .next()为此元素的下一个元素,可以再加上.next()表示下下一个元素,以此类推 :visible 选择器选取每个当前是可见的元素.语法:$(& ...

  3. EL表达式自定义函数

    表达式语言除了可以使用基本的运算符外,还可以使用自定义函数.通过使用自定义函数,加强了表达式语言的功能. EL表达式函数,主要功能是完成对数据的修改,统一化格式: 步骤 1.开发函数处理类,处理类就是 ...

  4. Http请求get和post调用

    工作中会遇到远程调用接口,需要编写Http请求的共通类 以下是自己总结的Http请求代码 package com.gomecar.index.common.utils; import org.apac ...

  5. Render QGraphicsItem on QPixmap: aggregate 'QWidget w' has incomplete type and cannot be defined

    Render QGraphicsItem on QPixmap: aggregate 'QWidget w' has incomplete type and cannot be defined #in ...

  6. QGrapicsScene类

    概述 QgraphicsScene类为管理大量的2D图形item提供了一个管理界面,做为item的容器,它配合使用QgraphicsView使用来观察items,例如线,矩形,文本或者自定义的item ...

  7. LINUX系统yum安装SVN服务及其配置

    待: http://oplinux.com/app/svn/linux-yum-install-svn.html  //基础设置及流程 http://files.cnblogs.com/logon/s ...

  8. Windows 特殊文件夹

    收藏的XP的一些特殊文件夹,使用方法:在任意位置用以下文件名创建文件夹即可. 目前还有些可以在WIN7下正常使用,以此作为一个存档,便于日后查询.   回收站.{645ff040-5081-101b- ...

  9. ArcGIS_Lisence安装步骤

    1.双击lisence.exe文件 2.下一步 3.关闭 4.下一步 5.下一步 6.下一步 7.安装 8.完成 9.OK                      

  10. JDBC预编译语句表名占位异常

    有时候,我们有这样的需求,需要清空多个表的内容,这样我们有两种做法,可用delete from table 或 truncate table table,两种方法视情况而定,前者只是一条条的删除表数据 ...