zoukankan      html  css  js  c++  java
  • centos中-hadoop单机安装及伪分布式运行实例

    创建用户并加入授权

    1,创建hadoop用户

    sudo useradd -m hadoop -s /bin/bash

    2,修改sudo的配置文件,位于/etc/sudoers,需要root权限才可以读写

    找到root ALL=(ALL) ALL这一行,在后面再加上一行就可以了(不用引号):
    “username ALL=(ALL) ALL”,将hadoop用户添加到sudo中

    安装vim编辑器:

    sudo yum install vim

    安装SSH、配置SSH无密码登陆

    集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令)

    1,sudo yum install openssh-server

    2,安装后进行测试

    ssh localhost

    3,利用ssh-keygen 生成密钥,并将密钥加入到授权中:

    1. exit # 退出刚才的 ssh localhost
    2. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
    3. ssh-keygen -t rsa # 会有提示,都按回车就可以
    4. cat ./id_rsa.pub >> ./authorized_keys # 加入授权

    4,再测试就不要密码了

    安装java环境

    1,安装jdk jre

    sudo yum install openjdk-7-jre openjdk-7-jdk

    2,查看软件是否安装成功。首先我们需要查看软件是否已经安装,或者说查看安装的软件包名称

    rpm -qa |grep openjdk-7-jdk

    查看具体路径:

    rpm -ql 上个命令查看到的 openjdk-7-jdk全名称

    3,修改/etc/profile修改环境变量

    添加JAVA_HOME环境变量:

    export JAVA_HOME=JDK安装路径

    配置完成时候执行:source /etc/profile使环境变量生效

    检测java安装:

    echo $JAVA_HOME # 检验变量值

    java -version

    下载安装配置hadoop

    1,下载:一般选择下载最新的稳定版本,即下载 "stable" 下的 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的

    ,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用

    其中涉及到一些hadoop位数问题,我的是centos32位的,

    一个32位hadoop2.6.0的下载地址

    链接:http://pan.baidu.com/s/1mi7IPz6 密码:faa0

    2,安装:将 Hadoop 安装至 /usr/local/ 中:

    1. sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local # 解压到/usr/local中
    2. cd /usr/local/
    3. sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop
    4. sudo chown -R hadoop ./hadoop # 修改文件权限

    3,查看hadoop是否安装成功:

    1. cd /usr/local/hadoop
    2. ./bin/hadoop version

    单机测试:

    将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

    1. cd /usr/local/hadoop
    2. mkdir ./input
    3. cp ./etc/hadoop/*.xml ./input # 将配置文件作为输入文件
    4. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
    5. cat ./output/* # 查看运行结果

    如果结果是:

    1  dfsadmin

    则表示成功

    注意:Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 删除。

    rm -r ./output

    伪分布式配置

    1,修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml)修改其中的<configuration></configuration>

    修改为下面配置:

    <configuration>

      <property>

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

        <value>file:/usr/local/hadoop/tmp</value>

        <description>Abase for other temporary directories.</description>

      </property>

      <property>

        <name>fs.defaultFS</name>

        <value>hdfs://localhost:9000</value>

      </property>

    </configuration>

    2,同样的,修改配置文件 hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
    </configuration>

    3,配置完成后,执行 NameNode 的格式化:

    ./bin/hdfs namenode -format

    执行过程最后如果含有:Exiting with statu 0则成功,如果是1则失败

    4,开启 NameNode 和 DataNode 守护进程:

    ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格

    然后执行命令:

    [hadoop@localhost /]$ jps
    8067 DataNode
    8349 Jps
    7972 NameNode
    8238 SecondaryNameNode

    下面四个少一个都是失败!!

    5,/etc/profile 中配置hadoop的环境变量

    1. export HADOOP_HOME=/usr/local/hadoop
    2. export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

     注意:务必执行 :source /etc/profile

    启动hadoop:./sbin/start-dfs.sh

    jps查看

    运行伪分布式实例

    1,HDFS 中创建用户目录:

    ./bin/hdfs dfs -mkdir -p /user/hadoop

    2,将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,

    即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中

    1. ./bin/hdfs dfs -mkdir input
    2. ./bin/hdfs dfs -put ./etc/hadoop/*.xml input

    3,复制完成后,可以通过如下命令查看文件列表:

    ./bin/hdfs dfs -ls input

    4,伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件

    ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

    5,查看运行结果的命令(查看的是位于 HDFS 中的输出结果):

    ./bin/hdfs dfs -cat output/*

    6,也可以将运行结果取回到本地:

    1. rm -r ./output # 先删除本地的 output 文件夹(如果存在)
    2. ./bin/hdfs dfs -get output ./output # 将 HDFS 上的 output 文件夹拷贝到本机
    3. cat ./output/*

    最后记得删除output文件目录:

    ./bin/hdfs dfs -rm -r output

    yarn的配置及使用

    1, 首先修改配置文件 mapred-site.xml,这边需要先进行重命名

    mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml2,修改<configuration>

    <configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    </configuration>

    3,修改配置文件 yarn-site.xml:
    <configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
    </configuration>

    4,启动 YARN 了(需要先执行过 ./sbin/start-dfs.sh):

    1. ./sbin/start-yarn.sh # 启动YARN
    2. ./sbin/mr-jobhistory-daemon.sh start historyserver # 开启历史服务器,才能在Web中查看任务运行情况

    启动后多了:NodeManger和ResourceManager

    web访问地址:

    http:localhost:8088/cluster

    注意:不启动 YARN 需重命名 mapred-site.xml

    关闭 YARN 的脚本如下:

    1. ./sbin/stop-yarn.sh
    2. ./sbin/mr-jobhistory-daemon.sh stop historyserver
    加入如下环境变量就可以直接执行bin和sbin中的可执行文件了
    export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin
  • 相关阅读:
    2019/2/3从字符串中删除指定的字符
    2019/2/3求组合数
    2019/2/3统计各成绩段的学生人数
    2019/2/3摄氏一华氏温度转换表
    2019/1/29有选择的复制字符串
    2019/1/28数字的移动
    2019/1/2810个整数的数据处理
    2019/1/27从三个数中找出最大的数(函数和宏)
    2019/1/23编写函数统计字符串中字母、数字、空格和其它字符的个数
    Jenkins 执行python脚本
  • 原文地址:https://www.cnblogs.com/sunshinekevin/p/6857047.html
Copyright © 2011-2022 走看看