sgg大数据新-hadoop-02

复习。

---00---

单机如何执行:

控制hadoop执行jar包。 

执行官方的wordCount案例:

---01---

集群是如何配置的?

第一步:配置配置文件

需要得到JAVA_HOME的路径。

/usr/local/apps/hadoop-2.7.2/etc/hadoop
[root@localhost hadoop]# $JAVA_HOME
-bash: /usr/local/apps/jdk8: Is a directory
[root@localhost hadoop]# 

第二步:

[root@localhost hadoop]# vi hadoop-env.sh

修改这个。

第三步修改下:

[root@localhost hadoop]# vi core-site.xml

hadoop常用的端口可以看下。

第四步:配置hdfs-site.xml

[root@localhost hadoop]# vi hdfs-site.xml

---02---

第五步:格式化

hdfs namenode -format

我这个在自己配置的data里面。

第六步:启动nameNode

sbin/hadoop-daemon.sh start namenode

看下是否启动成功:

第七步:启动dataNode

sbin/hadoop-daemon.sh start datanode

此时再看下文件:

其中data是放dataNode产生的 name是放nameNode产生的。

第八步:web访问 http://192.168.244.138:50070/dfshealth.html#tab-overview

9000是nameNode在内部通信的端口号,50070是外网的访问的地址。

本地集群上传到101的hdfs上去。

日志的查看:

---03---

当进程启动时,格式化nameNode,则:

第一步:在程序开启时格式化namenode

bin/hdfs namenode -format

第二步:停止datanode和namenode

sbin/hadoop-daemon.sh stop datanode

sbin/hadoop-daemon.sh stop namenode

sbin/hadoop-daemon.sh start namenode

sbin/hadoop-daemon.sh start datanode---这个起不来了

第三步:停掉namenode再格式化再启动呢?还是不行。

第四步:解决

注意我们进到

看下namenode的clusterID。

之后在data目录找:

可以看到是不一样的。

如何正确的操作呢?

第一步:先停掉namenode

第二步:删除data下面的所有目录,就是存namenode和datanode的数据的目录,和logs目录。

第三步:再去格式化namenode

格式化之后这个data的目录就生成了

进去:

找version,看到新生成一个ID

第四步:启动namenode:

看到有了ligs

第五步:启动datanod:

第六步看下,是一样的:

---04---

操作hdfs文件:

第一步:在hdfs上创建一个input的文件夹

第二步:在hdfs上创建目录

hdfs dfs -mkdir -p /user/atguigu/input

如何上传文件呢?

[root@localhost hadoop-2.7.2]# hdfs dfs -put input/ /user/atguigu/input

默认128M。

看下具体在哪里?

其它的方法看下:

如何在hdfs运行mapReduce程序,此处也会默认去hdfs上查找数据的。

bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input/ /user/atguigu/output

看我自己执行的结果:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput/wordcount  output1

都是在hdfs上找的,在hdfs找。

和之前对比下:

查看结果:

bin/hdfs dfs -cat /user/atguigu/output/*

---05---

启动yarn执行mapreduce,配置yarn:

第一步:修改yarn的配置文件

第二步:

第三步:配置mapreduce的JAVA_HOME

第四步:重新命名这个文件

现在必须启动yarn 在yran运行。

yarn是四部分,我们主要关注的是resourcemasnager和nodeManager。

第五步:启动,先要看下namenode和datanode是不是已经启动了。

resourcemanager不能启动:https://blog.csdn.net/qq_44793689/article/details/105874482

---06---

查看yarn的运行效果。

地址:http://192.168.244.138:8088/cluster

执行:

---07---

如何配置历史服务器?这个点进去会报错的。

第一步:

第二步:

第三步:启动服务器

---08---

配置日志的聚集:

开启日志聚集:

第一步:

第二步:

第三步:

关闭NodeManager 、ResourceManager和HistoryManager
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager

[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager

[atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver

启动NodeManager 、ResourceManager和HistoryManager
[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager

[atguigu@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager

[atguigu@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver

第四步:删除hdfs上的文件,亲测有效的

bin/hdfs dfs -rm -R /user/atguigu/output

---09---

---10---

真正的分布式,这个是重点的:

192.168.244.140/141/142

1.修改映射 vi /etc/hosts

192.168.244.138 hadoop100
192.168.244.139 hadoop101
192.168.244.140 hadoop102
192.168.244.141 hadoop103
192.168.244.142 hadoop104

xshell发送会话到所有的窗口:https://blog.csdn.net/a772304419/article/details/104084936

---11---

安全拷贝:scp -r /opt/module  root@hadoop102:/opt/module

问题:

---12---

集群的分发脚本:

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径 –P指向实际物理地址,防止软连接
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=103; host<105; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

---13---

目前我们是3台机器,102,103,104

---14---

2.在102这台机器上,配置core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property>
		<name>fs.defaultFS</name>
      <value>hdfs://hadoop102:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/apps/hadoop-2.7.2/data/tmp</value>
</property>

3.在102这台机器上,配置hdfs-site.xml

<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop104:50090</value>
</property>

4.在102这台机器,配置yarn-env.sh

5.在102这台机器,配置yarn-site.xml

<!-- Reducer获取数据的方式 -->
<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop103</value>
</property>

6.在102这台机器,配置mapred-env.sh

7.在102这台机器,配置mapred-site.xml

<!-- 指定MR运行在Yarn上 -->
<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>

8.在102这台机器,配置mapred-site.xml

<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
</property>

9.在102这台机器上配置日志聚集,配置yarn-site.xml

<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

10.分发到其它的机器上。

./xsync /usr/local/apps/hadoop-2.7.2/

---15---

单点启动集群:

1.第一次启动要格式化namenode,首先应该删除data文件夹下的东西和logs文件夹下的东西。

只需要格式化102就可以了,因为namenode在102上的。

hadoop namenode -format

格式化之后就会出现data目录。

要操作的东西:

2.启动namenode

hadoop-daemon.sh start namenode

3.启动datanode吗,这个需要在三台机器上同时启动的。

hadoop-daemon.sh start datanode

---16---

操作文件测试:

第一步:在服务器上创建一个目录,在102上传文件。

其中-p表示创建多级。

bin/hdfs dfs -mkdir -p /user/atguigu/input

第二步:我们通过web去访问下:http://192.168.244.140:50070/explorer.html#/user/atguigu/input

第三步:在103上传文件

bin/hdfs dfs -put wcinput/testhdfs /user/atguigu/input

可以看到有三个副本。就是存了3份,我们验证下是不是存了三份。

看下102的:

同理104

问题:为什么都显示的是localhost:https://blog.csdn.net/QWQWQQQQQQQQQQ/article/details/110954891

第四步:测试在104上删除文件

bin/hdfs dfs -rm -r /user/atguigu/input/testhdfs

---17---

集群的无密钥登录配置:

第一步:

进入目录:

进入此目录:

/root/.ssh

注:你要是新建用户的话,就在/home/atguigu的目录下

[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:ssh访问自己也需要输入密码,所以我们需要将公钥也拷贝给102
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102

实现了免密登录了。

---18---

第一步:配置slaves:

/usr/local/apps/hadoop-2.7.2/etc/hadoop

修改slaves:

./xsync /usr/local/apps/hadoop-2.7.2/etc/hadoop/slaves

第一步:首先停掉集群

先停掉datanode:sbin/hadoop-daemon.sh stop datanode

再停掉namenode:sbin/hadoop-daemon.sh stop namenode

启动:

启动hdfs建议在namenode所在的机器上去启动,启动yarn建议在resourcemanager机器上启动。

第一步:启动hdfs,在102上启动。

sbin/start-dfs.sh

看下群起:

看下集群都起起来了:

第二步:启动yarn:sbin/start-yarn.sh,在103上启动。

第三步:测试

http://192.168.244.140:50070/dfshealth.html#tab-datanode

http://192.168.244.141:8088/cluster

http://192.168.244.142:50090/status.html

关于格式化:

1.删除 data和logs目录下的文件

2.格式化namenode

---

第四步:测试上传小文件,在任意的机器上都可以

bin/hdfs dfs -mkdir -p /user/atguigu/input
bin/hdfs dfs -put wcinput/testhdfs /user/atguigu/input

我们试着上传大文件,分了两块了

在103上看下,看下分为两块了。

放一起:

解压:

---19---

集群时间一致。

 

---20---

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值