hadoop完全分布式搭建

             Hadoop全分布

  1. 前期准备:克隆三台虚拟机。
  2. 修改三台主机的用户名:hostnamectl set-hostname 跟修改后的用户名。

注意:修改后记得重启服务。

  1. 配置网关:vim /etc/sysconfig/network-scripts/ifcfg-ens33

网关生效:systemctl restart network

  1. 禁用selinux : vim  /etc/selinux/config
  2. SELINUX=disabled
  3. 关闭防火墙:systemctl stop firewalld.Service
  4. 添加ip和用户名:vim /etc/hosts  (三台都要操作)

配置免密登录

  1. 生成密钥:ssh-keygen
  2. 进入ssh:cd .ssh
  3. 生成密钥文件:cat id_rsa.pub  >>authorized_keys
  4. node1上面的公钥分发下去:ssh-copy-id 跟用户名或ip
  5. 禁用selinux:vim /etc/selinux/config

SELINUXTYPE=disabled

  1. 在opt下创建两个文件夹:mkdir /opt/so

Mkdir /opt/module

  1. 将jdk和hadoop解压到/opt/module:tar -zxvf 文件名 -C /opt/module

tar -zxvf 文件名 -C /opt/module

  1. 添加jdk和hadoop的环境变量:

  2. vim /etc/profile

#java

export JAVA_HOME=/opt/module/jdk

export PATH=$PATH:$JAVA_HOME/bin

#hadoop

export HADOOP_HOME=/opt/module/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

export HDFS_JOURNALNODE_USER=root

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

  1. 环境变量生效:source  /etc/profile
  2. 查看版本号:java  -version

hadoop  version

修改相关配置文件

  1. 进入/etc/hadoop:cd  /opt/module/hadoop-3.1.3/etc/hadoop
  2. 添加jdk的路径:vim  hadoop-env.sh

              添加hadoop里面的四个参数

  1. vim core-site.xml

<configuration>

    <!-- �~L~G��~Z NameNode �~Z~D�~\��~]~@ -->

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://master:8020</value>

    </property>

    <!-- �~L~G��~Z Hadoop �~U��~M��~Z~D��~X�~B��~[���~U -->

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/opt/module/hadoop/data</value>

    </property>

    <!-- �~E~M置 HDFS ��~Q页�~Y���~U使�~T��~Z~D�~]~Y�~@~A�~T��~H�为 mastt

er -->

    <property>

        <name>hadoop.http.staticuser.user</name>

        <value>master</value>

    </property>

</configuration>

  1. vim  hdfs-site.xml

<configuration>

      <!-- nn(NameNode) web 端访问地址-->

      <property>

        <name>dfs.namenode.http-address</name>

        <value>master:9870</value>

    </property>

   

      <!-- 2nn(SecondaryNameNode) web 端访问地址-->

    <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>slave2:9868</value>

    </property>

   

</configuration>

  1. vim  yarn-site.xml

<configuration>

    <!-- 指定 MR 走 shuffle -->

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <!-- 指定 ResourceManager 的地址-->

    <property>

        <name>yarn.resourcemanager.hostname</name>

        <value>slave1</value>

    </property>

    <!-- 环境变量的继承 -->

    <property>

        <name>yarn.nodemanager.env-whitelist</name>

      <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>

    </property>

      <!-- 开启日志聚集功能 -->

      <property>

          <name>yarn.log-aggregation-enable</name>

          <value>true</value>

      </property>

     

      <!-- 设置日志聚集服务器地址 -->

      <property> 

          <name>yarn.log.server.url</name> 

          <value>http://master:19888/jobhistory/logs</value>

      </property>

     

      <!-- 设置日志保留时间为 7 天 -->

      <property>

          <name>yarn.log-aggregation.retain-seconds</name>

          <value>604800</value>

      </property>

</configuration>

  1. mapred-site.xml

<configuration>

      <!-- 指定 MapReduce 程序运行在 Yarn 上 -->

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

      <!-- 历史服务器端地址 -->

      <property>

          <name>mapreduce.jobhistory.address</name>

          <value>master:10020</value>

      </property>

     

      <!-- 历史服务器 web 端地址 -->

      <property>

          <name>mapreduce.jobhistory.webapp.address</name>

          <value>master:19888</value>

      </property>

</configuration>

  1. 添加用户名:vim  workers

hadoop0出现节点为: DataNode   NodeManager  NameNode

hadoop1出现节点为:   DataNode   NodeManager   ResourceManager 

hadoop2出现节点为:   DataNode   Secondary NameNode  NodeManager

分发

  1. 拷贝profile:

scp /etc/profile  node2:/etc/profile

scp /etc/profile  node3:/etc/profile

  1. 拷贝jdk:

scp -r /opt/module/jdk1.8.0_212 node2:/opt/module

scp -r /opt/module/jdk1.8.0_212 node3:/opt/module

  1. 拷贝hadoop:

scp -r /opt/module/hadoop-3.1.3 node2:/opt/module

scp -r /opt/module/hadoop-3.1.3 node3:/opt/module

  1. 格式化:hadoop namenode -format
  2. 启动hadoop:   start-all.sh

关闭hadoop:   stop-all.sh

  1. 进入sbin下:start-dfs.sh
  2. 启动mprds:start-yarn.sh
  3. 访问namenode端口号:8088

报错:

Attempting to operate on hdfs datanode as root ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.

解决方法:在环境变量中加入

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

hadoop简单操作

  1. hdfs:文件存储系统
  2. hdfs:集群资源管理和调度
  3. mapRodes:技算框架
  4. namenode:hdfs访问端口
  5. hdfs文件一旦写入不允许修改
  6. 主:namenode从datanode
  7. 物理上是分块存储的,默认大小是128mb,不足按一个块算。
  8. hadoop fs -ls  /  #查看hdfs下的文件
  9. hadoop fs -mkdir  /itcast  #创建文件夹
  10. hadoop fs -put file:/etc/profile  hdfs://master:9000/itcast

file操作本地文件系统

hdfs操作hdfs文件系统

也可简写为:hadoop fs -put /etc/profile  /  #上传到根目录

  1. hadoop -ls -h /   #查看具体内存
  2. hadoop fs -cat  /itheima/2.txt   #查看文件内容
  3. hadoop fs -get  /itheima/2.txt  #将hdfs文件下载到本地
  4. hadoop fs  -cp  /tmp/ss    /opt/666.txt  #拷贝
  5. hadoop fs  -mv  /dsfsdfs    /dsfsd    #移动
  6. hadoop fs  -appendToFile    2.txt  3.txt  #追加合并
  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值