hadoop基础02

一、hdfs的启动问题:

1、第一次启动:需要询问yes/no;第二次启动不询问;

2、启动之后,输入jps查看当前打开的节点:

观察:

属于localhost:

namenode

datanode

属于0.0.0.0:

seconddary namenodes

问题:读写都是通过namenode来的,但是namenode:localhost,很容易让别的机器访问

不了执行不了读写的操作,因此需要修改为本机器ip地址。

(1)修改localhost:
1)找到这个core-site.xml文件(/opt/software/hadoop-2.8.1/etc/hadoop)

2)打开core-site.xml文件:

修改为namenode当前IP,如果做了IP和hostname配置的话,也可以直接配置为hostname。

3)验证(重启hdfs):

关闭:

启动:

成功将namenode的localhost改为hadoop001。

(2)修改datanode:

1)找到slaves(从的意思,相当于namenode是主,datanode是从,所以要在slaves这里改)

路径:/opt/software/hadoop-2.8.1/etc/hadoop

2)打开slaves文件

如果datanode是多台机器的时候,ip用逗号分割。

3)重新启动hdfs

已经修改成功

修改secondarynamenode的IP地址

(3)打开官网,查看configuration

(4)在hdfs-default.xml文档中

(5)由于是hdfs-default.xml文档的内容,所以打开hadoop中的hdfs-default.xml

/opt/software/hadoop-2.8.1/etc/hadoop

vi ./hdfs-site.xml 

(6)添加


     <property>

         <name>dfs.namenode.secondary.http-address</name>

         <value>192.168.137.130:50090</value>

     </property>

 

     <property>

         <name>dfs.namenode.secondary.https-address</name>

         <value>192.168.137.130:50091</value>

     </property>


(7)重启hdfs

三个进程都已经成功修改为hadoop001的IP地址。

为什么要这么处理?

1、对外提供服务和后期集群配置

2、第一次启动之前我们是配置当前hadoop001的无密码的信任关系,生产上不可能

配置0.0.0.0信任关系

(8)在浏览器输入192.168.137.130:50070进入hdfs的后台管理系统

(9)jps

1)jps  查看java接口的进程号(基本hadoop有关的java接口可以查)

(10)假死分为“真的死”和“假的死”

HDFS模拟机器宕机或者进程误杀的真死状态:

由于root用户不是生产中常见的,因此以新用户HBinz操作

1)切换目录权限:

将hadoop-2.8.1文件所属用户从root换成HBinz

chown -R HBinz:HBinz hadoop-2.8.1

2)以HBinz用户身份开启HDFS

注意!!!

这里踩了一个坑,进入hadoop-2.8.1目录后,cd /sbin是默认进入根目录的sbin而不是hadoop-2.8.1的sbin。要cd ./sbin才可以正确开启HDFS

由于没给HBinz和hadoop001配置信任关系,所以老提醒输入密码,这里我们配置信任关系。

由于之前我们是以root用户配置namenode,datanode,因此也要把数据清掉。这里以HBinz用户为例重新配置hadoop信任关系,以及启动HDFS。

1】kill掉HBinz用户所有进程

kill -9 $(pgrep -f HBinz)

2】清理namenode,datanode,secondrynamenode数据

在tmp目录下:

清理标红的文件

rm -rf /tmp/hadoop-* /tmp/hsperfdata_*

3】清理HBinz的.ssh文件

4】按步骤做HBinz与本机器192.168.137.130的信任关系

5】重新翻阅官网文档

发现:如果其他用户要做信任关系的话,需要修改authorized_key的权限


chmod 0600 ~/.ssh/authorized_keys

6】修改权限

成功了!

(11)格式化hadoop

进入hadoop-2.8.1目录执行hdfs namenode -format

(12)配置path等参数...

(13)启动HDFS

总结:

1、三个进程以hadoop001(192.168.137.130)启动

2、HBinz用户的信任关系和root是不同的,要对authorized_keys修改为600权限

3、重新部署HDFS

    /tmp目录下数据存储删除--》格式化HDFS--》启动

4、学会查看官网的xml文件

回到(10)状态的真假

1、假死分为“真的死”和“假的死”

(1)以HBinz用户启动HDFS

(2)以root用户登陆

kill掉hadoop-2.8.1的所有进程:

kill -9 $(pgrep -f hadoop-2.8.1)

(3)进程已经杀掉了,但是仍有显示在jps中

进程真死,但假活的状态。进程不存在,且process information unavailable

(4)重新启动

(5)在root用户在看进程存在,但是information unavailable

状态问题解释:

1、JPS查询的是当前用户HBinz的hsperfdata_HBinz

2、所以如果kill了进程,但是jps仍存在,可以进入当前用户HBinz的hsperfdata_HBinz

把所有文件都删除了。这是jps就不会有多余的jps进程出现了。

在hsperfdata_HBinz文件夹里

rm -f *

到root用户的终端再输入jps

生产上process information unavailable的解决思路:

1、找到进程号jps

2、ps -ef|grep pid 是否存在

3、假如不存在,我们可以去该用户/tmp/hsperfdata_xxx(到/tmp目录下

ll hsperfdata_* ,然后匹配相应的进程号)然后去删除

4、假如存在,当前用户查看就是process information unavailable,那么怎样查看是

有用的?(切换用户查看)

切换哪个呢?

同上

二、yarn伪分布式部署 

1、找到hadoop目录,发现没mapred-site.xml,所以将mapred-site.xml.template复制为mapred-site.xml:

cp mapred-site.xml.template mapred-site.xml 

2、将官网的内容复制到两个相应的xml文件里


mapred-site.xml :

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
说明mapreduce是在yarn上计算,如果没用yarn,就在本地计算

yarn-site.xml:

<configuration>
 <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
 </property>
</configuration>

3、启动yarn(后台:192.168.137.130:8088)

4、Mapreduce2

(1)找到hadoop-mapreduce-examples-2.8.1.jar:

在hadoop-2.8.1/下

find -name "*example*"

路径:/opt/software/hadoop-2.8.1/share/hadoop/mapreduce

(2)hadoop 

查看命令帮助得:hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar

(3)hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar pi

(4)hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar pi 5 20

(5)打开后台

结果是3.2000000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值