• hadoop集群环境配置


    hadoop是当之无愧的大型数据处理的主流方向,对于这么重型的技术当然值得学习。

    废话不多说,入题:

    这几天抽空整了hadoop基础环境配置工作,(总体感觉配置有点繁琐,不够智能,人性化),对于服务搭建有三种模式:
    单机实例,
    单机伪分布式
    集群分布式
    第一种模式搭建服务的工作很简单
    第二种没搭建过,如果要做分布式那就多台机器吧。
    我把自己搭建hadoop过程中遇到的问题记录下来,如果有人遇到同样的问题便于解决。
    由于是体验用,所以用到3台机器:
    xx.xx.xx.239
    xx.xx.xx.142
    xx.xx.xx.172
    以xx.xx.xx.239上操作为例:
    1,安装jdk
    方式1:yum install jdk
    方式2:源码(略)
    2,下载hadoop(版本,我选择0.20.2)
    方式:wget -c http://apache.etoak.com/hadoop/common/hadoop-0.20.2/hadoop-0.20.2.tar.gz
    3,解压:
    tar -zxf hadoop-0.20.2/hadoop-0.20.2.tar.gz
    4,创建安装目录
    三台机器创建一致的目录结构
    makdir -p /usr/hadoopApp
    5,把解压的hadoop包 拷贝到其他两台机器的hadoopApp目录中
    6,修改 hadoop-0.20.2/conf下的 hadoop-env.sh
    vim hadoop-0.20.2/conf/hadoop-env.sh
    //设置jdk目录
    export JAVA_HOME="jdk目录"
    //修改日志目录
    export HADOOP_LOG_DIR=${HADOOP_HOME}/../logs
    7,注意三台机器上保持一致
    8,设置ssh 密码登陆(先在root目录下建立.ssh吧)
    cd .ssh
    ssh-keygen (联系3次回车)
    cd ..
    scp -rp .ssh root@xx.xx.xx.142:~/.ssh
    //输入密码
    scp -rp .ssh root@xx.xx.xx.172:~/.ssh
    //输入密码
    在239上测试下
    ssh xx.xx.xx.142
    ssh xx.xx.xx.172
    在142上测试下
    ssh xx.xx.xx.239
    在172上测试下
    ssh xx.xx.xx.239
    都Ok
    如果出现任然要输入密码才能登陆的情况,请检查3台机器登录用户是不是一样的,配置三台机器的hosts文件
    239 hosts
    xx.xx.xx.239 node-01
    142 hosts
    xx.xx.xx.142 node-01
    172 hosts
    xx.xx.xx.172 node-01
    9,重点来了,配置hadoop节点

    A.我以239机器作为,namenode,因此在239机器上操作:

    预先创建好:hadoop.tmp.dir,dfs.name.dir,dfs.data.dir,mapred.system.dir
    cd /usr/hadoopApp/hadoop-0.20.2/conf
    vim core-site.xml
    内容:
    <property>
    <name>fs.default.name</name>
    <value>hdfs://xx.xx.xx.xx:9000</value>
    </property>
    <!--hadoop store dir , 2012.7.13-->
    <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/hadoopApp/hadoop.tmp.dir</value>
    </property>
    <!--
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    -->
    vim hds-site.xml
    内容:
    <property>
    <name>dfs.name.dir</name>
    <value>/usr/hadoopApp/dfs.name.dir</value>
    </property>
    <property>
    <name>dfs.data.dir</name>
    <value>/usr/hadoopApp/dfs.data.dir</value>
    </property>
    <property>
    <!--是否对dfs进行权限控制-->
    <name>dfs.permissions</name>
    <value>false</value>
    </property>
    <property>
    <name>dfs.replication</name>
    <value>2</value>
    </property>
    vim mapred-site.xml
    内容:
    <property>
    <name>mapred.job.tracker</name>
    <value>192.168.134.239:9001</value>
    </property>
    <property>
    <name>mapred.system.dir</name>
    <value>/usr/hadoopApp/mapred.system.dir</value>
    </property>
    <property>
    <name>mapred.local.dir</name>
    <value>/usr/hadoopApp/mapred.local.dir</value>
    </property>
    vim masters
    内容:
    xx.xx.xx.239
    vim slaves
    内容:
    192.168.129.142
    192.168.129.172
    B.slave服务器配置
    把core-site.xml,hdfs-site.xml, mapred-site.xml 拷贝到142,172上
    分别修改142,172 的 master文件 增加一行代码:192.168.134.239
    142,172上的slaves文件设置为空
    C.执行格式化
    在239,142.172上(进入到hadoop目录bin)执行 ./hadoop namenode -format
    D.启动 
    在239上(进入到hadoop目录bin)执行 ./start-all.sh
    E.经验:在启动后如果日志报错,这样做:
    1,看看是不是具有文件权限,
    2,删除新建目录下的文件,再重新执行./hadoop namenode -format

    10.测试(看到下3张图,说明配置成功,并且可以在服务端上传文件操作了)

    测试代码为:bin/hadoop dfs -put ~/libevent-2.0.19-stable.tar.gz ../dfs.data.dir_2 

       

     

     

     11.结语

    这只是基本配置,对hadoop使用,架构还要花点时间来研究。

  • 相关阅读:
    d3js selections深入理解
    d3js scales深入理解
    d3js shape深入理解
    如何使用chrome devtool调试Mobile网页?
    为什么有时父元素无法包含子元素?
    base64编码以及url safe base64是怎么工作的?
    古老的CSS同高列问题
    springboot2.0整合redis的发布和订阅
    如何在centos7中设置redis服务器开机自启动
    1.Linux安装redis
  • 原文地址:https://www.cnblogs.com/liguo/p/2595603.html
Copyright © 2020-2023  润新知