hadoop集群搭建与简单应用

系统镜像:CentOS-6.5-x86_64-Li.iso

虚拟机:VMware Workstation 16 Pro(16.0.0 build-16894299)

JDK:1.8.0_161

hadoop:2.7.0

创建虚拟机

虚拟机安装后将系统install

对master主机linux系统配置

  • 修改主机名

    vim /etc/sysconfig/network

    shutdown -r now

  • 配置ip地址映射

    ip地址自己去看:编辑>虚拟网络编辑器>VMnet8>NAT设置

    vim /etc/hosts

    192.168.112.128 master
    192.168.112.129 slave001
    192.168.112.130 slave002
    
  • 配置网卡

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    写入以下内容

    DEVICE=eth0
    NETMSKE=255.255.255.0
    GATEWAY=192.168.112.2
    IPADDR=192.168.112.128
    ONBOOT=yes
    BOOTPROTO=static
    

    service network restart

    ifconfig

  • 开启sshd服务与开机启动,关闭防火墙与开机启动.

    service sshd start
    chkconfig sshd on
    service iptables stop
    chkconfig iptables off
    
  • 赋予hdp,sudo权限

    useradd hdp

    passwd hdp

    vim /etc/sudoers

    ## Allow root to run any commands anywhere 
    root    ALL=(ALL)       ALL
    hdp     ALL=(ALL)       ALL
    
  • putty通过pscp传输文件或用xftp

    pscp -P 22 [要传输的文件] [用户名@主机ip地址:要传输到的目录]

  • 解压jdk,hadoop
    解压tar:tar -xvf [文件名] [-C] /usr/local

    解压tar.gz:tar -zxvf [文件名] [-C] /usr/local

    压缩:tar -zcvf 文件名.tar.gz [文件名]

  • 对jdk,hadoop设置文件拥有者,组拥有者

    chown -R hdp /usr/local/jdk1.8.0_161

    chgrp -R hdp /usr/local/jdk1.8.0_161

    chown -R hdp /usr/local/hadoop2.7.0

    chgrp -R hdp /usr/local/hadoop2.7.0

  • 配置环境变量

    vim /etc/profile

    export JAVA_HOME=/usr/local/jdk1.8.0_161
    export PATH=$PATH:$JAVA_HOME/bin
    export HADOOP_HOME=/usr/local/hadoop-2.7.0
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    source /etc/profile

    java,hadoop检验

克隆slave基于master

  • 修改主机名

    vim /etc/sysconfig/network

    shutdown -r now

  • 配置网卡

    将IPADDR修改一下

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

配置$HADOOP_HOME/etc/hadoop/下的文件

转到hdp用户su hdp

转到配置文件目录cd $HADOOP_HOME/etc/hadoop/

创建hadoop存储文件夹mkdir $HADOOP_HOME/tmp

对下列文件进行修改(对主机名看自己情况修改)

  • hadoop-env.sh

    export JAVA_HOME=/usr/local/jdk1.8.0_161
    #JAVA_HOME写上自己jdk 的安装路径
    
  • core-site.xml

    <!-- 指定Hadoop所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
    </property>
    <!-- 定Hadoop运行是产生文件的存储目录。默认 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/local/hadoop-2.7.0/tmp</value>
    </property>
    
  • hdfs-site.xml

    <!-- 指定HDFS副本的数量,不修改默认为3个 -->
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <!-- dfs的SecondaryNameNode在哪台主机上 -->
    <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>slave001:50090</value>
    </property>
    
  • mapred-site.xml

    mv mapred-site.xml.template mapred-site.xml

    <!-- 指定MapReduce运行是框架,这里指定在yarn上,默认是local -->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    
  • yarn-site.xml

    <!-- 指定yarn的老大ResourceManager的地址 -->
    <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>master</value>
    </property>
    <!-- NodeManager上运行的附属服务。需要配置成mapreduce_shuffle,才可以运行MapReduce程序默认值 -->
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
    
  • slaves

    slave001
    slave002
    

传输hadoop配置文件到slave机

scp -r /usr/local/hadoop2.7.0/etc/hadoop hdp@slave001:/usr/local/hadoop2.7.0/etc/

启动集群

  • 初始化HDFS

    hdfs namenode -format

  • 启动hdfs,yarn

    start-all.sh等价于start-hdfs.sh,start-yarn.sh

  • 查看节点角色

    jps

  • 查看端口

    netstat -nplt

  • 浏览器查看namenode,secondarynamnode,yarn监控端

    master:50070
    slave001:50090
    master:8080
    

集群wordcount示例

  • 常用命令

    类mkdir命令:hadoop fs -mkdir 目录

    类ls命令:hadoop fs -ls 文件

    类cat命令:hadoop fs -cat 文件

    类cp命令:hadoop fs -cp 文件 文件

    类rm -r命令:hadoop fs -rm -r 文件

    类mv命令:hadoop fs -mv 文件 文件

    统计文件系统可用空间信息:hadoop fs -df -h /

    统计文件夹的大小信息:hadoop fs -du -s -h 文件

    下载hdfs文件到本地:hadoop fs -get hdfs文件

    上传本地文件到hdfs:hdfs dfs -put 本地文件 hdfs文件

  • 运行wordcount示例

    hadoop fs -mkdir /input

    hdfs dfs -put 一个具有文字信息的文件 /input/

    yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar wordcount /input/ /output

    hadoop fs -ls /output

  • namenode进入和离开安全模式

    hdfs dfsadmin -safemode get

    hdfs dfsadmin -safemode wait可以运行一次?

    hdfs dfsadmin -safemode enter

    hdfs dfsadmin -safemode leave

有问题或建议请在下面评论,如果我看到的话会回。

posted @ 2022-10-15 21:37  好像没什么问题  阅读(101)  评论(0)    收藏  举报