Hadoop2 环境搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoleizhanghahaha/article/details/80917404

Hadoop2.x环境搭建
  备注:#开头表示root用户执行,$开头表示普通用户执行
    准备工作
    一、Linux环境
    1.修改主机名【不能数字开头,不能特殊字符】
    # vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoopeasy
    # cat /etc/sysconfig/network

    2.主机映射
    # vim /etc/hosts
    ip地址  主机名
# 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
# ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.128  hadoopeasy     hadoop

    如果是window开发,linux是环境,那么必须在windows上也配置映射
    windows下主机映射
    C:\Windows\System32\drivers\etc\hosts
    
    
    二、添加普通用户(一般情况下,hadoop环境搭建使用普通用户)
    useradd hadoop
    passwd hadoop
    
    配置SSH免密码登录(所有机器之间都做)
    $ ssh-keygen -t rsa
    $ ssh-copy-id hadoopeasy
    

    三、jdk
    (推荐)用户只有一个(不要是root),hadoop
    创建两个目录
    $ mkdir ~/software ~/modules
    ~/software  存放*.tag.gz
    ~/modules    放置安装文件

    
    安装jdk
      $ tar -zxvf ~/software/jdk-7u79-linux-x64.tar.gz -C ~/modules/
    
 卸载openJDK(root用户)
      # rpm -qa | grep jdk
      # rpm -e --nodeps   XXX.rpm   //如果存在jdk就进行不验证依赖进行卸载
    
     配置环境变量  用pwd查看目录路径
      $ vim ~/.bash_profile
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
    
    使配置生效
      $ source ~/.bash_profile
      
      Linux 防火墙(root用户)
      # service iptables status   ##查看防火墙状态
      iptables: Firewall is not running.
      # service iptables stop     ##关闭防火墙
    

      关闭开机启动防火墙
      #  chkconfig iptables off   ##不随着机器启动

      关闭安全子系统
      # vim /etc/sysconfig/selinux
      SELINUX=disabled

    四、配置Hadoop  ${HADOOP_HOME}---hadoop的安装目录
    解压安装hadoop【注意上传和解压过程中的用户权限问题】
    $ tar -zxvf ./software/hadoop-2.5.0-cdh5.3.6.tar.gz  -C ./modules/
    配置环境变量
    $ vim ~/.bash_profile
    export HADOOP_HOME=/home/hadoop/modules/hadoop-2.5.0-cdh5.3.6
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    $ source ~/.bash_profile
    
    五. 给Hadoop添加JDK依赖
    $ vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh    
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/hadoop/modules/jdk1.7.0_79
    
    六、配置HDFS相关内容
    $ mkdir $HADOOP_HOME/data
    
    $ vim $HADOOP_HOME/etc/hadoop/core-site.xml
    1)core-site.xml
=============core-site.xml===================
    <!--NameNode地址,8020是指定进程8020,访问入口 -->
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoopeasy:8020</value>
    </property>

    <!--hadoop在运行时产生的文件,元数据在本地的存放目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/modules/hadoop-2.5.0-cdh5.3.6/data/tmp</value>
    </property>

    $ vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
    2)hdfs-site.xml
=============hdfs-site.xml============
    <!--存放到hdfs上的文件的副本数,伪分布式配置为1 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <!-- 不开启权限验证 -->
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
    
    七、给定DataNode节点位置(一行一个DataNode的主机名)
    $ vim $HADOOP_HOME/etc/hadoop/slaves
hadoopeasy
    
    八、配置MapReduce相关配置
    $ cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
    $ vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
=============mapred-site.xml============    
    <!-- 指定MapReduce基于Yarn来运行-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    九、配置Yarn相关配置
    $ vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
===================yarn-site.xml=====
    <!-- 指定ResorceManager所在服务器的主机名-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoopeasy</value>
    </property>
    

    <!-- 指明在执行MapReduce的时候使用shuffle-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    

    十、格式化namenode  只能格式化一遍,不要重复格式化(如果重复格式化,需要删除$HADOOP_HOME/data文件夹下所有内容)
    添加环境变量后执行如下代码:(可以在$HADOOP_HOME/data/tmp文件夹下看到dfs文件夹)
    $ hdfs namenode -format   
18/05/31 09:33:05 INFO common.Storage: Storage directory /home/hadoop/modules/hadoop-2.5.0-cdh5.3.6/data/tmp/dfs/name has been successfully formatted.    

    十一、启动HDFS
    添加环境变量后执行如下代码:
    $ hadoop-daemon.sh start namenode  //启动namenode进程
    $ hadoop-daemon.sh start datanode    //启动datanode
    或者
    start-dfs.sh
    
    十二、检测HDFS
    $ jps
    24672 DataNode
    24884 Jps
    24561 NameNode
    
    Web界面
        http://hadoopeasy:50070/dfshealth.html#tab-overview
    
    HDFS相关命令(添加环境变量):
        $ hdfs dfs -ls /
        $ hdfs dfs -mkdir /test
        $ hdfs dfs -mkdir -p /test1/input
        $ hdfs dfs  -rmdir /test1/input
        $ hdfs dfs -put ~/software/jdk-7u79-linux-x64.tar.gz /test
        $ vim wc.txt
hadoop spark hbase spark
hadoop spark hbase spark hive
hive hbase spark
        $ hdfs dfs -mkdir -p /test/input
        $ hdfs dfs -put ./wc.txt /test/input
        $ hdfs dfs -text /test/input/wc.txt
    
    十三、启动Yarn
    $ hadoop-daemon.sh start namenode(必须启动)
    $ hadoop-daemons.sh start datanode(必须启动)
    $ yarn-daemon.sh start resourcemanager
    $ yarn-daemons.sh start nodemanager
    
    十四、检测YARN
    $ jps
    24672 DataNode
    25341 ResourceManager
    25751 Jps
    24561 NameNode
    25624 NodeManager
    
    Web界面
        http://hadoopeasy:8088/cluster
    
    十五、MapReduce测试
        1) WordCount测试
        上传文本到hdfs上
        查看上传好的文件
        $ hdfs dfs -text /test/input/wc.txt
        要求输出文件夹/test/output02不存在,否则会报错
        $ yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /test/input/wc.txt /test/output02
        查看执行结果
        $ hdfs dfs -text /test/output02/*

猜你喜欢

转载自blog.csdn.net/xiaoleizhanghahaha/article/details/80917404