大数据 Hadoop
大数据概念
大数据由巨型数据集组成,这些数据集大小常超出人类在可接受时间下的收集、庋用、管理和处理能力。大数据的大小经常改变,截至2012年,单一数据集的大小从数太字节(TB)至数十兆亿字节(PB)不等。
在一份2001年的研究与相关的演讲中,麦塔集团(META Group,现为高德纳)分析员道格·莱尼(Doug Laney)指出数据增长的挑战和机遇有三个方向:量(Volume,数据大小)、速(Velocity,数据输入输出的速度)与多变(Variety,多样性),合称“3V”或“3Vs”。高德纳与现在大部分大数据产业中的公司,都继续使用3V来描述大数据。高德纳于2012年修改对大数据的定义:“大数据是大量、高速、及/或多变的信息资产,它需要新型的处理方式去促成更强的决策能力、洞察力与最优化处理。”另外,有机构在3V之外定义第4个V:真实性(Veracity)为第四特点。
大数据必须借由计算机对数据进行统计、比对、解析方能得出客观结果。美国在2012年就开始着手大数据,奥巴马更在同年投入2亿美金在大数据的开发中,更强调大数据会是之后的未来石油。数据挖掘(data mining)则是在探讨用以解析大数据的方法。[1]
大数据特点
具体来说,大数据具有4个基本特征:
- 数据体量巨大。 百度资料表明,其新首页导航每天需要提供的数据超过1.5PB(1PB=1024TB),这些数据如果打印出来将超过5千亿张A4纸。有资料证实,到目前为止,人类生产的所有印刷材料的数据量仅为200PB。
- 数据类型多样。 现在的数据类型不仅是文本形式,更多的是图片、视频、音频、地理位置信息等多类型的数据,个性化数据占绝对多数。
- 处理速度快。 数据处理遵循“1秒定律”,可从各种类型的数据中快速获得高价值的信息。
- 价值密度低。 以视频为例,一小时的视频,在不间断的监控过程中,可能有用的数据仅仅只有一两秒。
- 大数据不能取代关系型数据库的技术。
大数据能干什么
大数据的起步数据量:1PB = 124TB ,一台计算显然没有办法保存如此庞大的数据量。如果数据量很大,那么就需要解决一个数据查询的问题。但是,这个不是取代关系型数据库的技术。
主要解决两个问题:
- 存数据
- 读取数据
而hadoop是大数据的技术的核心以及基石,但是他不是代表了大数据的全部。
大数据背景
- Apache中的一个项目叫Lucenne是一个搜索引擎;
- Netch 是一个分布式的网络爬虫框架(通过请求把请求到的网页下载到本地中,是一种获取互联网资源的一种技术)。首先需要解决如何查与存储的问题(通过谷歌文件系统文章解决了存储问题)。
- Hadoop,是Apache的顶级项目,由下面几个部分组成:
- Hadoop Common:在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common
- HDFS:Hadoop分布式文件系统(Distributed File System)-HDFS(Hadoop Distributed File System),负责存储
- MapReduce:并行计算框架,0.20前使用org.apache.hadoop.mapred旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API,负责读取算。
- YARN
Hadoop主要提供了两个部分:HDFS以及MapReduce。
Hadoop 生态圈
Hadoop 生态圈 主要构成搭建Hadoop
节点配置在搭建过程中,都可以先部署一台,然后通过FTP将一些配置传输到其他两台服务器上即可。下面主要配置的是Master主机C1。
下面的环境均搭建在CentOS7中,且JDK的版本为1.8.251。
安装以及配置如下,如果下面的不清楚的地方可以参考《官方文档》。
-
需要三台Linux环境。
-
关闭服务器的防火墙(可选择永久关闭防火墙)。可使用命令
service firewalld stop
;关闭开机启动systemctl disable firewalld
。 -
三台电脑都需要安装gcc C语言运行库
yum install gcc
; -
卸载Linux 预装Java(三台服务器都需要卸载);安装自定义JDK版本,并配置环境变量可参见《Linux开发环境安装》。
-
在
/etc/hosts
文件下配置三台主机的IP地址。如下所示。$ vim /etc/hosts $ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.0.20 c1 192.168.0.21 c2 192.168.0.22 c3
-
三台服务器都需要配置SSH免密登录。配置公钥私钥。
-
配置私钥,创建私钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
,三台主机都要生成私钥。此时生成的公私钥将在/root/.ssh
目录中。如下所示:-rw-------. 1 root root 672 5月 11 17:04 id_dsa ## 私钥 -rw-r--r--. 1 root root 601 5月 11 17:04 id_dsa.pub ## 公钥
-
将私钥追加到公钥(这个地方主要配置Master主机公钥)。
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
,将生成的公钥重新输出到一个authorized_keys
文件中去(避免修改原有公钥)。同时需要将其他两台Slave1与Slave2的公钥的内容复制到authorized_keys
中去。如下所示,<font style="color:red;font-weight:bolder">一定要保证三个公钥各自占一行。</font>ssh-dss AAAAB3NzaC1kc3MAAACBANFpVIAwyHBgJ3Ww1bWmyCAwsjdOyazUb5xWjINMGyE9b5bAyhtMxs8LLPq+PTqi6JygKX3V4uXU5cvac/hnrlaYXIZtlEmED/CIrmefGkVnmqWwdYSQYhoPxZScWcSTH6B+XmLeLx+IBxtXdkN4LgGfwplyIF1kiiN+swsx5CzNAAAAFQD+JEtvwTbsCOb9B/BP9FujtoeEBQAAAIEAhdjuzcD87MzdEuh4xlS9mndRPFqhi/9ieaOVxYqnwVz41281AK4Yox001nSy0/V+iQ1GnH9ilamla1SaTjoIRHy4y4yl1I5c14wJw21BWAe3H0rPcndtTEfMBcjPXakUahJRbGQVdJ31vu+22uQGSJS9xI/AGPR7b3F2IPvmK3cAAACBAJs7IjCKoCRbZ6Lri+k495y3/1B6JC4OHIur7Kq9bGNOJ7hpL7mr7h/xkuKogXcLIqkH6onWJd4tiAyhiFM7coBhRwZPTmu0L2+dyh5MgYNkeNCyHyLRUfCPOOjeB6rCfkfppcKIEK6GPLYzxksYhsmqN5P6YPXiw4YXAIBSHpkm root@Master ssh-dss AAAAB3NzaC1kc3MAAACBAPMsgWaBMQjB3WtFjeIvuJE7qPkB+JL+XPxAvXV2wbTEbXVq0/KBmdDrSXoTG/CfQkxUQVJYoS0UdG69IknfTHSQAt27uYvg0Nj85zh7WIMgACZ8FXDWUOo/K+YKCio/btLMM1x3s87NnL6QW53WKzOb6yy8FEqf4Ih+PzzJrZcHAAAAFQDuhNaDKmfw9nI+XpJJbcB8wdmRTwAAAIEA3yIthtT1ZPEMNsAaYbOE3U9OnVT4rcWjFDRInUeO3Vvx6WD5AkKx8THUhtGSZmUzCawmUFgTdoe5y9g20vdekYODq/cF5vgdzUQ6SnA5kpg9DDuv2hSFpK+HRvOOXOHDPSw0zHPPAsojGCKk81mFNjXR4I3dsHVv3vHCAAxkWogAAACATQdRcfkJCbcVtdUSUd6pGlzPwFNh4/crG64R9zYSry1jWLxzIHT8RPZGBLSsaSHN+FPnT7MYSkPitfbXJg6KPxt8mw0moqKUTom7S/Gs6w4V2m77bn5bDQD0w1Baf0whPipTo0SFfICen4r7vQlokyI9toPLxi+/aSXWSn4Kd3k= root@Slave1 ssh-dss AAAAB3NzaC1kc3MAAACBALQSi4kCV1/zuXvBzo2L5FmvCfmHpS4BD49CsCMhalXjU1NS2H3WCeFWHBfLzdFl4utzjLht6/rn08ynscW5XfFV1RFtV1Ai/qGb1ETIKw4crzvBnnmg2+/YjXdZ5pA64xZB2Ldyq48N8izBgY4NupsXhYa/p51b7xZyf0XosfYvAAAAFQCQzCkmfY2u+1br8xv8QYQBa653qQAAAIEApGko/kgHHEAHCxH1iljJ0p6VyInoyRMVPcnOT8YLjsTiS8c+8dyqfpFXCl1CE8ysKDkCU3RMnLeWRzgEuhbKwVn6aCOb7RZppevlYiKgov2z4a7tVfGEfA4knrSoOfqU1+p0WHQikcXbM6M5MoxRfRu/VR3/eQ3ErO/KHms2UM4AAACBAKTps94dsj476Rlhcv75gUUfgbMTCqEW4mfCMFJKIWL09DNFENG9VEQ1zkH+qACF3If6QBJflu6l+3eg9JlfOIuQMUJkpoNJm/aLTVb5c419cJkh5v6fQ11aKajO3dY89ctYTDauo8L2OVSURatyz44yvoEZeTsD0uiTu1x24Ylw root@Slave2
-
远程拷贝至其他两服务器中。使用命令
scp local_file remote_username@remote_ip:remote_folder
将authorized_keys
以及配置好的/etc/hosts
文件发送到其他三台服务器中去。[2]
-
-
安装Hadoop。
-
从Apache Hadoop官网下载Hadoop二进制安装包。并传输至Linux服务器上,这里就传输至Master服务器上(192.168.0.20)。
下载Hadoop
-
解压缩Hadoop安装包。
## 当前目录为/home/download下 $ ls -al -rw-r--r--. 1 root root 366447449 5月 11 16:35 hadoop-2.9.2.tar.gz -rw-r--r--. 1 root root 195132576 4月 21 13:21 jdk-8u251-linux-x64.tar.gz -rw-r--r--. 1 root root 403607456 5月 7 18:13 mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz -rw-r--r--. 1 root root 1039530 5月 7 22:16 nginx-1.18.0.tar.gz ## 解压缩hadoop-2.9.2.tar.gz $ tar -zxf hadoop-2.9.2.tar.gz ## 查看当前目录内容 $ ls -al drwxr-xr-x. 9 501 dialout 149 11月 13 2018 hadoop-2.9.2 -rw-r--r--. 1 root root 366447449 5月 11 16:35 hadoop-2.9.2.tar.gz -rw-r--r--. 1 root root 195132576 4月 21 13:21 jdk-8u251-linux-x64.tar.gz -rw-r--r--. 1 root root 403607456 5月 7 18:13 mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz -rw-r--r--. 1 root root 1039530 5月 7 22:16 nginx-1.18.0.tar.gz
-
在
/opt
目录下创建hadoop目录,并将解压的/home/download/hadoop-2.9.2
移动至/opt/hadoop
下。 -
配置hadoop的环境变量,编辑
/etc/profile
文件。添加变量HADOOP_HOME=/opt/hadoop/hadoop-2.9.2
。 -
并在
PATH
变量中追加PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(这里需要注意,添加了两个环境变量。一个是:$HADOOP_HOME/bin
,另一个是$HADOOP_HOME/sbin
),并更新环境变量设置source /etc/profile
文件。# Hadoop环境变量 export HADOOP_HOME=/opt/hadoop/hadoop-2.9.2 export PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
-
生效后输入命令
hadoop
测试下,是否配置正确。出现如下信息即可代表配置正确了。$ hadoop Usage: hadoop [--config confdir] [COMMAND | CLASSNAME] CLASSNAME run the class named CLASSNAME or where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file note: please use "yarn jar" to launch YARN applications, not this command. checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the Hadoop jar and the required libraries credential interact with credential providers daemonlog get/set the log level for each daemon trace view and modify Hadoop tracing settings Most commands print help when invoked w/o parameters.
-
将环境变量环境传输给其他两台服务器(Slave1以及Slave2)。(同样使用scp命令即可,到时候切换至Slave1以及Slave2时更新下profile文件即可。)
$ scp /etc/profile root@c2:/etc profile 100% 2238 5.1MB/s 00:00 $ scp /etc/profile root@c3:/etc profile 100% 2238 5.4MB/s 00:00
-
-
配置Hadoop。
-
在hadoop根目录下创建三个目录,目录名称如下所示:
- temp:临时目录
- hdfs/name:namenode目录,用于存放数据
- hdfs/data:datanode目录,也是用于存放数据
$ ls -al drwxr-xr-x. 2 501 dialout 194 11月 13 2018 bin drwxr-xr-x. 3 501 dialout 20 11月 13 2018 etc drwxr-xr-x. 4 root root 30 5月 11 21:03 hdfs ## 用于存放hdfs文件系统数据 drwxr-xr-x. 2 501 dialout 106 11月 13 2018 include drwxr-xr-x. 3 501 dialout 20 11月 13 2018 lib drwxr-xr-x. 2 501 dialout 239 11月 13 2018 libexec -rw-r--r--. 1 501 dialout 106210 11月 13 2018 LICENSE.txt -rw-r--r--. 1 501 dialout 15917 11月 13 2018 NOTICE.txt -rw-r--r--. 1 501 dialout 1366 11月 13 2018 README.txt drwxr-xr-x. 3 501 dialout 4096 11月 13 2018 sbin drwxr-xr-x. 4 501 dialout 31 11月 13 2018 share drwxr-xr-x. 2 root root 6 5月 11 21:02 temp ## 临时目录
-
找到hadoop根目录目录下的配置目录
/opt/hadoop/hadoop-2.9.2/etc/hadoop
,/opt/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml.template
将其创建一个副本文件/opt/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml
,并需要将找到下面的配置文件做相应的修改。:-
/opt/hadoop/hadoop-2.9.2/etc/hadoop/core-site.xml
是Hadoop的核心配置文件,该配置文件主要提供Hadoop对外的访问能力,修改内容如下(增加外部访问的地址、配置临时目录):<!-- Put site-specific property overrides in this file. --> <configuration> <!-- 默认访问HDFS地址 --> <property> <name>fs.default.name</name> <value>hdfs://c1:9000</value> <description>对外访问路径</description> </property> <!-- 默认访问HDFS地址 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/hadoop-2.9.2/temp</value> <description>临时文件夹</description> </property> </configuration>
配置属性说明如下:
属性 值 说明 fs.default.name hdfs://c1:9000 HDFS的默认访问URI,对外访问地址,一定填写的是主机,而不是从机地址 hadoop.tmp.dir /opt/hadoop/hadoop-2.9.2/temp 临时文件夹,即上一步安装过程中创建的 /opt/hadoop/hadoop-2.9.2/temp
-
/opt/hadoop/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
,找到脚本export JAVA_HOME=${JAVA_HOME}
中,将其修改为当前环境变量中的信息export JAVA_HOME=/usr/local/Java/jdk1.8.0_251/bin/java
,如下所示:# The java implementation to use. ## 你可以将原来模板中的JAVA_HOME注释掉。 # export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/local/Java/jdk1.8.0_251
-
/opt/hadoop/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
,主要namenode信息。配置内容如下表:属性 值 说明 dfs.name.dir /opt/hadoop/hadoop-2.9.2/hdfs/name namenode元数据 dfs.data.dir /opt/hadoop/hadoop-2.9.2/hdfs/data datanode物理存储位置 dfs.replication 3 副本个数,根据主从服务器数量合理配置。数据备份数量。如果是伪分布式
可以只用备份数量1。备份数量不要大于节点数量。配置的格式与
core-site.xml
类似,如下所示:<!-- Put site-specific property overrides in this file. --> <configuration> <!-- namenode元数据 --> <property> <name>dfs.name.dir</name> <value>/opt/hadoop/hadoop-2.9.2/hdfs/name</value> <description>namenode元数据</description> </property> <!-- datanode物理存储位置 --> <property> <name>dfs.name.dir</name> <value>/opt/hadoop/hadoop-2.9.2/hdfs/data</value> <description>datanode物理存储位置</description> </property> <!-- 数据副本个数,根据主从服务器数量合理配置。 --> <property> <name>dfs.replication</name> <value>3</value> <description>数据副本个数,根据主从服务器数量合理配置。</description> </property> </configuration>
-
/opt/hadoop/hadoop-2.9.2/etc/hadoop/mapred-site.xml
,实际上配置的是yarn
。告诉hadoop需要启动yarn。配置属性如下表:属性 值 说明 mapreduce.framework.name yarn 整合yarn mapreduce.jobhistory.address c1:10020 任务历史 mapreduce.jobhistory.webapp.address c1:19888 任务历史web端 可先简单配置如下:
<!-- Put site-specific property overrides in this file. --> <configuration> <!-- 整合yarn --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
-
/opt/hadoop/hadoop-2.9.2/etc/hadoop/slaves
,如果搭建伪分布式,则可以不用管该文件,如果是搭建全分布式(需要三台服务器),则需要将该文件修改为下面的形式。c1
、c2
以及c3
分别对应上面/etc/hosts
中所配置的解析IP地址。c1 c2 c3
-
/opt/hadoop/hadoop-2.9.2/etc/hadoop/yarn-env.sh
,同修改/opt/hadoop/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
类似,将# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
将模板中语句改为export JAVA_HOME=/usr/local/Java/jdk1.8.0_251/
即可,如下所示:# some Java parameters # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ export JAVA_HOME=/usr/local/Java/jdk1.8.0_251/
-
/opt/hadoop/hadoop-2.9.2/etc/hadoop/yarn-site.xml
,启动shuffle管理节点,配置的属性如下表:属性 值 说明 yarn.nodemanager.aux-services mapreduce_shuffle 启动shuffle yarn.resourcemanager.webapp.address c1:8099 yarn的web监视端口(可选配置) 具体配置如下:
<!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <description>启动shuffle,管理节点信息</description> </property> <!-- 需要避开刚刚配置core-site.xml中的端口 --> <property> <name>yarn.resourcemanager.webapp.address</name> <value>c1:8099</value> <description>yarn的web监视端口(可选配置)</description> </property> </configuration>
<font style="color:red;font-weight:bolder">需要避开刚刚配置core-site.xml中的端口</font>
-
-
-
将Master中已经配置好的hadoop包分别拷贝至c2以及c3服务器(Slave1以及Slave2)中,仍然使用
scp
命令,分别执行下面两条命令即可。$ scp -r ./hadoop root@c2 /opt/ $ scp -r ./hadoop root@c3 /opt/
-
在c2以及c3服务器中分别执行
source /etc/profile
,即,上面第七步中从c1(Master)中所传输过去的/etc/profile
环境变量配置文件。分别验证下,环境是否正确。## 输入hadoop命令,是否会出现下面的信息 $ hadoop Usage: hadoop [--config confdir] [COMMAND | CLASSNAME] CLASSNAME run the class named CLASSNAME or where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file note: please use "yarn jar" to launch YARN applications, not this command. checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the Hadoop jar and the required libraries credential interact with credential providers daemonlog get/set the log level for each daemon trace view and modify Hadoop tracing settings Most commands print help when invoked w/o parameters.
-
格式化hadoop的hdfs文件管理。需要使用到
/opt/hadoop/hadoop-2.9.2/bin/
下的hdfs
命令(另外两台c2以及c3则不用格式话,格式化的只有主机服务器c1——Master)。执行下面的命令$ /opt/hadoop/hadoop-2.9.2/bin/hdfs namenode -format ...... ## 当看到有successfully格式化成功时, 20/05/11 22:35:33 INFO common.Storage: Storage directory /opt/hadoop/hadoop-2.9.2/hdfs/data has been successfully formatted. 20/05/11 22:35:33 INFO namenode.FSImageFormatProtobuf: Saving image file /opt/hadoop/hadoop-2.9.2/hdfs/data/current/fsimage.ckpt_0000000000000000000 using no compression 20/05/11 22:35:33 INFO namenode.FSImageFormatProtobuf: Image file /opt/hadoop/hadoop-2.9.2/hdfs/data/current/fsimage.ckpt_0000000000000000000 of size 322 bytes saved in 0 seconds . 20/05/11 22:35:33 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 20/05/11 22:35:33 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at c1/192.168.0.20 ************************************************************/
-
启动hadoop,进入
/opt/hadoop/hadoop-2.9.2/sbin/
,找下面两个命令脚本start-dfs.sh
以及start-yarn.sh
——实际就是启动MapReduce
——start-dfs.sh
,Hadoop必须首先启动HDFS,然后在启动MapReduce——start-yarn.sh
。下面还有一个start-all.sh
脚本。-rwxr-xr-x. 1 501 dialout 2752 11月 13 2018 distribute-exclude.sh drwxr-xr-x. 4 501 dialout 36 11月 13 2018 FederationStateStore -rwxr-xr-x. 1 501 dialout 6477 11月 13 2018 hadoop-daemon.sh -rwxr-xr-x. 1 501 dialout 1360 11月 13 2018 hadoop-daemons.sh -rwxr-xr-x. 1 501 dialout 1640 11月 13 2018 hdfs-config.cmd -rwxr-xr-x. 1 501 dialout 1427 11月 13 2018 hdfs-config.sh -rwxr-xr-x. 1 501 dialout 3148 11月 13 2018 httpfs.sh -rwxr-xr-x. 1 501 dialout 3677 11月 13 2018 kms.sh -rwxr-xr-x. 1 501 dialout 4134 11月 13 2018 mr-jobhistory-daemon.sh -rwxr-xr-x. 1 501 dialout 1648 11月 13 2018 refresh-namenodes.sh -rwxr-xr-x. 1 501 dialout 2145 11月 13 2018 slaves.sh -rwxr-xr-x. 1 501 dialout 1779 11月 13 2018 start-all.cmd -rwxr-xr-x. 1 501 dialout 1471 11月 13 2018 start-all.sh -rwxr-xr-x. 1 501 dialout 1128 11月 13 2018 start-balancer.sh -rwxr-xr-x. 1 501 dialout 1401 11月 13 2018 start-dfs.cmd -rwxr-xr-x. 1 501 dialout 3734 11月 13 2018 start-dfs.sh -rwxr-xr-x. 1 501 dialout 1357 11月 13 2018 start-secure-dns.sh -rwxr-xr-x. 1 501 dialout 1571 11月 13 2018 start-yarn.cmd -rwxr-xr-x. 1 501 dialout 1347 11月 13 2018 start-yarn.sh -rwxr-xr-x. 1 501 dialout 1770 11月 13 2018 stop-all.cmd -rwxr-xr-x. 1 501 dialout 1462 11月 13 2018 stop-all.sh -rwxr-xr-x. 1 501 dialout 1179 11月 13 2018 stop-balancer.sh -rwxr-xr-x. 1 501 dialout 1455 11月 13 2018 stop-dfs.cmd -rwxr-xr-x. 1 501 dialout 3206 11月 13 2018 stop-dfs.sh -rwxr-xr-x. 1 501 dialout 1340 11月 13 2018 stop-secure-dns.sh -rwxr-xr-x. 1 501 dialout 1642 11月 13 2018 stop-yarn.cmd -rwxr-xr-x. 1 501 dialout 1340 11月 13 2018 stop-yarn.sh -rwxr-xr-x. 1 501 dialout 4295 11月 13 2018 yarn-daemon.sh -rwxr-xr-x. 1 501 dialout 1353 11月 13 2018 yarn-daemons.sh
启动HDFS——
HDFS监控平台start-dfs.sh
成功后,可以通过刚刚配置的http://192.168.0.20:50070/查看HDFS情况。该Web页面主要查看数据节点硬盘使用情况。
启动MapReduce成功后,可以通过
yarn监控平台yarn-site.xml
中配置的管理节点信息的c1:8099中查看启动情况。该web平台主要监控yarn的使用情况。
看到这两个页面,至少说明了yarn以及hdfs启动成功。
<font style="font-weight:bolder;color:green">
下面提供三个常用web地址以及端口,当然主要还是看如何配置的。:
- HDFS监控端口,即 {主机IP地址}:50070
- YARN监控端口,即 {主机IP地址}:8099
- HDFS访问端口,即 {主机IP地址}:9000
</font>
HDFS Shell 操作
基本和Linux Shell 操作一致。可参见《官方文档——命令手册》,此处不在一一列举。
- 目录操作
hadoop fs -ls /
; - 创建文件操作
hadoop fs -mkdir /input
- 上传文件
hadoop fs -put /etc/hosts /input
- 下载文件操作
hadoop fs -get /input/hosts ./
下载到当前目录。 - 删除文件操作
hadoop fs -rmr /out
删除目录。如果版本比较新的话。将出现下面的提示信息。$ hadoop fs -rmr /input/profile # rmr已经过期,请使用 -rm -r 代替。 rmr: DEPRECATED: Please use '-rm -r' instead. Deleted /input/profile
下面演示上面几条命令
## 创建目录
$ hadoop fs -mkdir /input
$ hadoop fs -mkdir /out
## 上传文件
$ hadoop fs -put /etc/profile /input
## 查看文件列表
$ hadoop fs -ls /
Found 2 items
drwxr-xr-x - root supergroup 0 2020-05-11 23:11 /input
drwxr-xr-x - root supergroup 0 2020-05-11 23:10 /out
$ hadoop fs -ls /input
Found 1 items
-rw-r--r-- 3 root supergroup 2238 2020-05-11 23:11 /input/profile
## 删除文件
$ hadoop fs -rmr /input/profile
rmr: DEPRECATED: Please use '-rm -r' instead.
Deleted /input/profile
【注意事项】:
- HDFS的Shell操作没有目录切换操作。
- 进行操作时,一般都需要全路径操作。
网友评论