• MAC下搭建Hadoop运行环境


    Hadoop环境的搭建和配置还是有些麻烦的,尤其是mac,此处整理下自己搭建的过程和步骤。

    作者:studytime
    原文:https://www.studytime.xin/
     

    安装 Java

    Hadoop运行环境基于Java、所以Java环境是必须的。至于怎么安装JDK、自行谷歌,各位小哥,此处不做赘述。

    配置ssh

    开启mac远程登录功能,且将当前用户加入允许的用户列表中

    避免使用hadoop命令时,多次输入密码

    ssh-keygen -t rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    
    # 验证ssh 
    ssh localhost
    

    ###

    下载Hadoop源码

    本文以 hadoop-2.7.3为例,下载 hadoop-2.7.0.tar.gz 即可。下载完成后,解压到本地合适的目录下。

    # 新建目录,存放安装的hadoop应用
    mkdir Users/baihe/App
    
    # 新建目录,存放应用的数据文件
    mkdir Users/baihe/Data/
    
    tar -zxvf hadoop-2.7.3.tar.gz -C /Users/baihe/App
    

    添加 Hadoop 环境变量

    vim ~/.bash_profile
    
    # hadoop
    export HADOOP_HOME=/Users/baihe/App/hadoop-2.7.3
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    
    退出编辑模式,使用 :wq 保存修改,然后运行 source 命令使文件中的修改立即生效:
    
    source ~/.bash_profile
    
    

    查看Hadoop版本号:hadoop version

    修改Haoop配置文件

    需要修改的 Hadoop 配置文件都在/Users/baihe/App/hadoop-2.7.3/etc/hadoop/下,包括:

    hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml

    下面开始进行配置:

    cd /Users/baihe/App/hadoop-2.7.3/etc/hadoop
    

    修改 hadoop-env.sh 文件

    设置 JAVA_HOME 的路径

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home
    

    修改 core-site.xml 文件

    默认情况下,Hadoop 将数据保存在/tmp 下,当重启系统时,/tmp 中的内容将被自动清空, 所以我们需要制定自己的一个 Hadoop 的目录,用来存放数据。另外需要配置 Hadoop 所使用的默认文件系统,以及 Namenode 进程所在的主机。

    <property>
         <name>fs.defaultFS</name>
         <value>hdfs://localhost:9000</value>
    </property>
    <!--用来指定hadoop运行时产生文件的存放目录  自己创建-->
    <property>
         name>hadoop.tmp.dir</name>
         <value>file://Users/baihe/Data/hadoop/tmp</value>
    </property>
    <property>
         <name>fs.trash.interval</name>
         <value>1440</value>
    </property>
    

    配置文件系统 hdfs-site.xml

    该文件指定与 HDFS 相关的配置信息。需要修改 HDFS 默认的块的副本属性,因为 HDFS 默认 情况下每个数据块保存 3 个副本,而在伪分布式模式下运行时,由于只有一个数据节点,所 以需要将副本个数改为 1;否则 Hadoop 程序会报错。

    vim hdfs-site.xml
    

    修改配置文件

    <property>
         <name>dfs.replication</name>
         <value>1</value>
    </property>
    <!--不是root用户也可以写文件到hdfs-->
    <property>
         <name>dfs.permissions</name>
         <value>false</value>    <!--关闭防火墙-->
    </property>
    <!-- name node 存放 name table 的目录 -->
    <property>
         <name>dfs.namenode.name.dir</name>
         <value>file:/Users/baihe/Data/hadoop/tmp/dfs/name</value>
    </property>
    <!-- data node 存放数据 block 的目录 -->
    <property>
         <name>dfs.datanode.data.dir</name>
         <value>file:/Users/baihe/Data/hadoop/tmp/dfs/data</value>
    </property>
    

    配置计算框架 mapred-site.xml

    在该配置文件中指定与 MapReduce 作业相关的配置属性,需要指定 JobTracker 运行的主机 文件夹中并没有 mapred-site.xml 文件,但提供了模板 mapred-site.xml.template 将其重命名为 mapred-site.xml 即可

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

    修改配置文件

    <property>
          <!--指定mapreduce运行在yarn上-->
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
    </property>
    

    配置文件系统 yarn-site.xml

    vim yarn-site.xml
    

    修改配置文件

    <!-- Site specific YARN configuration properties -->
    <property>
    <!-- mapreduce 执行 shuffle 时获取数据的方式 -->
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
    </property>
    <property>
          <name>yarn.resourcemanager.address</name>
          <value>localhost:18040</value>
    </property>
    <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>localhost:18030</value>
    </property>
    <property>
           <name>yarn.resourcemanager.resource-tracker.address</name>
           <value>localhost:18025</value>
    </property>
    <property>
           <name>yarn.resourcemanager.admin.address</name>
           <value>localhost:18141</value>
    </property>
    <property>
           <name>yarn.resourcemanager.webapp.address</name>
           <value>localhost:18088</value>
    </property>
    

    Hadoop namenode 格式化

    hdfs namenode -format 成功则会看到”successfully formatted”和”Exitting with status 0”的提示,若为 “Exitting with status 1” 则是出错。

    启动 Hadoop 集群

    /Users/baihe/App/hadoop-2.7.3/sbin
    ./start-all.sh
    

    执行命令后,提示出入 yes/no 时,输入 yes 启动所有的 hadoop 服务,包括 hdfs 和 yarn

    同时启动中可能会出现问题、继续向下看,下方会有描述。

    查看进程是否启动

    1、在 Hadoop 的终端执行 jps 命令,在打印结果中会看到 5 个进程,分别是 namenode、 secondarynamenode、datanode、resourcemanager、nodemanager, 如下图所示。 如果出现 了这 5 个进程表示主节点进程启动成功。

    2、Web UI 查看集群是否成功启动,浏览器中打开http://localhost:50070/,以及http://localhost:18088/;检查 namenode 和 datanode 是否正常,检查 Yarn 是否正常。

     
  • 相关阅读:
    洛谷 AT2000 Leftmost Ball
    洛谷 P1326 足球
    洛谷 P4868 Preprefix sum
    洛谷 P2596 [ZJOI2006]书架
    HDU 3415 Max Sum of Max-K-sub-sequence
    洛谷 P3901 数列找不同
    洛谷 P3609 [USACO17JAN]Hoof, Paper, Scissor蹄子剪刀…
    洛谷 P5749 [IOI2019]排列鞋子
    验证码解决表单重复的原理
    session和浏览器之间的技术内幕
  • 原文地址:https://www.cnblogs.com/studytime/p/12871033.html
Copyright © 2020-2023  润新知