hadoop搭建伪分布环境

伪分布环境

特点:(1)在单机上模拟一个分布式环境
                    HDFS:NameNode、DataNode、SecondaryNameNode
                    Yarn:ResourceManager、NodeManager
              (2)具备Hadoop的所有功能
              (3)用于开发和测试

注意:伪分布模式和全分布模式,需要设置以下环境变量(运行的用户):
        export HDFS_DATANODE_USER=root
        export HDFS_DATANODE_SECURE_USER=root
        export HDFS_NAMENODE_USER=root
        export HDFS_SECONDARYNAMENODE_USER=root
        export YARN_RESOURCEMANAGER_USER=root
        export YARN_NODEMANAGER_USER=root

在配置文件中把hadoop的sbin文件也配置到path路径下,这样启动的时候直接执行start-all.sh命令即可

在用户变量文件下设置这几个变量并使它生效:source ~/.bash_profile

然后再配置几个配置文件,hdfs-site.xml  core-site.xml  mapred-site.xml  yarn-site.xml

hdfs-site.xml
            <!--配置数据块的冗余度-->
            <!--默认是3-->
            <!--一般来说数据块的冗余度跟数据节点个数一致-->
            <!--但最大不超过3-->
            <property>
                <name>dfs.replication</name>
                <value>1</value>
            </property>
            
            <!--默认true-->
            <!--禁用了HDFS的权限检查功能-->
            这个参数先不配置
            <property>
                <name>dfs.permissions</name>
                <value>false</value>
            </property>
   
        core-site.xml
            <!--配置NameNode地址-->
            <!--9000是RPC通信的端口-->
            <property>
                <name>fs.defaultFS</name>
                <value>hdfs://bigdata111:9000</value>
            </property>
            
            <!--HDFS对应的操作系统目录-->
            <!--一定要改默认值是Linux的tmp目录-->
            <property>
                <name>hadoop.tmp.dir</name>
                <value>/root/training/hadoop-3.1.2/tmp</value>
            </property>                
            
        mapred-site.xml
            <!--MR运行的框架-->
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>            

            <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
            </property>    

            <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
            </property>    

            <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
            </property>    
        
        yarn-site.xml
            <!--配置ResourceManager的地址-->
            <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>bigdata111</value>
            </property>    
            
            <!--MR运行的方式是Shuffle-->
            <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
            </property>

需要注意的是配置hdfs的操作目录的时候这个目录可以事先不存在,这个目录表示的是hdfs存储目录以及元信息日志等目录

当我们执行namenode初始化的时候,这个实现不存在的目录就给你格式并创建好了

对NameNode进行格式化
                hdfs namenode -format
                日志:Storage directory /root/training/hadoop-3.1.2/tmp/dfs/name
                         has been successfully formatted.

然后使用start-all.sh启动一下hadoop,然后我们会发现有个报错

这个是因为我们没有配免密码登陆,然后我需要配置一下免密码登陆

A登陆B就A生成公钥和私钥

那么我们现在只在一台机器上,就在当台机器上执行ssh-keygen -t rsa,然后一路回车即可

然后需要我们把公钥上传到当对方服务器,因为咱们是伪分布所以传到当台机器即可,在copy的过程需要输入一次对方服务器密码

authorrized_keys 就是B服务器会生成的文件

然后我们就可以用ssh登录到B服务器上,因为我们是伪分布所以就直接登录当台机器就可以了

接下来我们就测试一下伪分布hadoop,因为我们伪分布hadoop以及包含了hdfs和yarn,所以我们可以在hdfs中创建文件夹上传文件,并且可以在yarn平台运行mapreduce程序

我们创建一个文件夹在hdfs上,前提需要启动一下hadoop,因为我没有启动就创建了所以报了一个错

mkdir: Call From bigdata111/192.168.112.111 to bigdata111:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

说是hadoop的mkdir的命令在调用的时候被拒绝了一个

然后我启动一下执行start-all.sh

启动成功并且可以正常创建文件

然后我们就把本地一个文件上传上去 

hdfs dfs -put temp/input/data.txt /input

hdfs dfs -ls /input

然后我们就测试一个wordcount的程序

hadoop jar hadoop-mapreduce-examples-3.1.2.jar wordcount /input/data.txt /output/wc

[root@bigdata111 mapreduce]# hdfs dfs -cat /output/wc/part-r-00000 
Beijing 2
I       2
captial 1
china   2
is      1
love    2
of      1
the     1
[root@bigdata111 mapreduce]# 

这样我们的伪分布环境已经搭建完毕,并且已经可以正常的运行了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枣泥馅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值