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

  • 安装
  • 配置
  • 概念
  • hadoop常用shell命令
  • 使用java操作hadoop

本文介绍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运行 hadoop-daemon.sh start namenode     # 开始文件系统
    进入worker运行 hadoop-daemon.sh start datanode     # 开始文件系统
    jps                                 # 查看启动的namenode
    netstat -ant                        # 查看50070端口是否建立连接
    
    访问 http://master:50070 即可看到管理界面

概念

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

原文地址:https://www.cnblogs.com/ye-hcj/p/10192857.html

时间: 2024-10-12 09:04:50

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

Hadoop集群配置心得(低配置集群+自动同步配置)

本文为本人原创,首发到炼数成金 http://f.dataguru.cn/thread-138720-1-1.html. 情况是这样的,我没有一个非常强劲的电脑来搞出一个性能非常NB的服务器集群,相信很多人也跟我差不多,所以现在把我的低配置集群经验拿出来写一下好了. 我的配备:1)五六年前的赛扬单核处理器2G内存笔记本 2)公司给配的ThinkpadT420,i5双核处理器4G内存(可用内存只有3.4G,是因为装的是32位系统的缘故吧...) 就算是用公司配置的电脑,做出来三台1G内存的虚拟机也

Hadoop 集群配置记录小结

Hadoop集群配置往往按照网上教程就可以"配置成功",但是你自己在操作的时候会有很多奇奇怪怪的问题出现, 我在这里整理了一下常见的问题与处理方法: 1.配置/etc/hosts 这个文件至关重要,他决定了各个节点是否能够成功通信,有两个地方要注意 1.127.0.0.1 localhost 要配置在其他的地址之后 2.127.0.0.1 hostname 配置要删掉,因为有对应的配置,比如192.168.0.150 service1 常见问题:节点间无法通信,datanode无法和n

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

通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker.这些机器是masters.余下的机器即作为DataNode也作为TaskTracker.这些机器是slaves\ 官方地址:(http://Hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.html) 1 先决条件 确保在你集群中的每个节点上都安装了所有必需软件:sun-JDK  ,ssh,Hadoop JavaTM1.5.x,必须安装,建议

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

环境:VMwareWorkstation8.0 和 Ubuntu14.04 1. 使用三台虚拟机搭建Hadoop集群 2. 一定要在每台机器上配置ssh免密码登录 3. 由于需要给/etc/hosts文件配置3台虚拟机的IP,所以尽量给三台虚拟机设置静态IP.不然即使之前整个集群搭建成功了,但是当某一台的IP变化后,这个集群又不可以使用了. 例如报如下错误: 当重新将/etc/hosts中各个节点的ip以及mapred-site.xml中master节点的ip改正确后,在重新启动hadoop就好

为已存在的Hadoop集群配置HDFS Federation

一.实验目的 1. 现有Hadoop集群只有一个NameNode,现在要增加一个NameNode. 2. 两个NameNode构成HDFS Federation. 3. 不重启现有集群,不影响数据访问. 二.实验环境 4台CentOS release 6.4虚拟机,IP地址为 192.168.56.101 master 192.168.56.102 slave1 192.168.56.103 slave2 192.168.56.104 kettle 其中kettle是新增的一台"干净"

hadoop集群配置

一.首先我们需要一个 hadoop-2.8.5.tar.gz 这里就省略了什么解压,指定路径什么的步骤啦 1.配置hadoop环境变量 vim /etc/profile export HADOOP_HOME=/usr/java/hadoop-2.8.5 (按自己的路径来) export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 记得 source   /etc/profile 2.修改hadoop的配置文件 cd /usr/java/hadoop

Hadoop集群配置免密登录方法

Hadoop集群包含1个主节点和3个从节点,需要实现各节点之间的免密码登录,下面介绍具体的实现方法. 一.Hadoop集群环境 二.免密登录原理 每台主机authorized_keys文件里面包含的主机(ssh密钥),该主机都能无密码登录,所以只要每台主机的authorized_keys文件里面都放入其他主机(需要无密码登录的主机)的ssh密钥就行了. 三.实现方法 1. 配置每个节点的hosts文件 #vim /etc/hosts1 192.168.44.3 hadoop01 2 192.16

2016.8.26 Windows系统上 搭建 Java环境

---恢复内容开始--- 1. 建一个目录 将不同版本的Java环境分类 2. 下载安装程序 因为项目中用的都是1.7  所以并未用1.8版本 x86 指代的32位系统, x64指代64位系统,现在一般都是x64 3. 安装过程中说明 指定安装JDK目录, JRE目录(一般使用默认). 如从未在机器上装java 一般会装 一次jdk 和一次jre JDK: Java Developer's Kit JRE: Java Runtime Environment 为什么会要有两套JRE? 首先 , J

Hadoop集群(第5期)_Hadoop安装配置

1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构. 对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve.一个HDFS集群是由一个NameNode和若干个DataNode组成的.其中Nam