• Centos7配置hadoop伪分布式


    修改hostname(可选)

    通过下面命令查看hostname信息

    hostnamectl
    

    通过下面命令修改hostname

    hostnamectl set-hostname gy01
    

    如图所示

    下面我们需要修改一下hostname,我们下查看下我们的ip地址

    ip addr
    

    该IP可以去/etc/sysconfig/network-scripts/ifcfg-enp0s3去修改,enp0s3可以在ip addr找到,然后我们修改这个文件

    现在我们去修改下hosts文件

    现在我们重启reboot

    重启后可以看到我们的hostname已经修改

    ssh免登陆

    这里简单介绍下ssh的原理,ssh(Secure Shell)顾名思义就是安全的shell,因为在机机间进行访问操作是要得到授权的,那这个授权其实就是对方给了你一把钥匙,所以这就相当于怎么把这把钥匙给对方呢。首先通过ssh-keygen -t rsa生成一对公钥和私钥。公钥加密的字符只能由私钥来解密,因此公钥只能加密,私钥只用来解密。好了假设我们现在有两台机器A和B,机器A想拿到机器B的“钥匙”,那么首先机器A将自己的公钥发送给机器B,机器A首先请求(带有用户和hostname)连接机器B,那么机器B通过用户和hostname去authorized_keys中去查找是否有机器A的公钥,如果有那么B就会用这个公钥来机密一个字符串并将加密后的字符串返给A,A这个时候使用私钥来解密这个字符串并将解密后的字符串再发给机器B,机器B用这个解密后的字符串和原字符串对比,如果一致那么久说明A是授权机器,这次连接后续的操作涉及密码输入的都无需再输入了。如果不一致那么不好意思需要输入密码的操作就老老实实的一个个输入吧。

    因为我们这是伪分布的场景,那么我们只要保证当前的hostname和后面需要启动的hdfs节点的hostname一致就达到了ssh免密码的目的了。

    cd ~/
    ssh-keygen -t rsa
    cd .ssh
    cp id_rsa.pub authorized_keys
    more authorized_keys
    

    从最后的root@gy01可以看到我们生成了用户+hostname对应的公钥了。

    配置hadoop

    我们现在/home目录下上传我们需要使用的软件包

    安装jdk

    rpm -ivh jdk-8u91-linux-x64.rpm
    

    配置hadoop
    先解压hadoop

    tar -zxvf hadoop-2.7.2.tar.gz
    cd /home/hadoop-2.7.2/etc/hadoop
    
    • hadoop-env.sh
    JAVA_HOME=/usr/bin/java/jdk1.8.0_151
    
    • core-site.xml
    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://gy01:9000</value>
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/home/hadoop-2.7.2/tmp</value>
            </property>
    </configuration>
    
    • hdfs-site.xml
    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
    </configuration>
    
    • mapred-site.xml
    cp mapred-site.xml.template mapred-site.xml
    
    <configuration>
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
    </configuration>
    
    • yarn-site.xml
    <configuration>
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>gy01</value>
            </property>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
    </configuration>
    

    格式化hdfs

    cd $HADOOP_HOME/bin
    ./hdfs namenode -format
    

    启动hdfs和yarn管理器

    cd $HADOOP_HOME/sbin
    ./start-all.sh
    

    这里启动会报localhost ,你可以通过屏蔽

    ssh  -o StrictHostKeyChecking=no  localhost
    

    测试

    这里我们使用hadoop shell可以做一些小测试

    我们在/home下创建个文件

    echo something > test
    
    hadoop fs -mkdir  hdfs://gy01:9000/repository
    hadoop fs -put test hdfs://gy01:9000/repository/test
    

    查看我们在hdfs上传的文件

    hadoop fs -ls  hdfs://gy01:9000/repository
    

    最后一定要来一个helloworld

  • 相关阅读:
    Linux内核分析第七周学习笔记——Linux内核如何装载和启动一个可执行程序
    <深入理解计算机系统>第七章读书笔记
    Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程
    linux内核分析第3章&第18章读书笔记
    Linux内核分析第五周学习总结——分析system_call中断处理过程
    课本第五章读书笔记
    Linux内核分析第四周学习总结——系统调用的工作机制
    课本第一二章读书笔记
    20162328蔡文琛 实验二 树
    20162328蔡文琛 大二week07
  • 原文地址:https://www.cnblogs.com/shineyao/p/7707430.html
Copyright © 2020-2023  润新知