首页 数据库 mysql教程 Hadoop 2.4.1在Ubuntu14.04上的集群配置

Hadoop 2.4.1在Ubuntu14.04上的集群配置

Jun 07, 2016 pm 04:37 PM
hadoop 配置 集群

本文主要参考:1. http://blog.csdn.net/ab198604/article/details/8250461 (比较喜欢此作者通俗的写风,哈哈,所以整张篇幅大量粘贴他的内容) 2. http://os.51cto.com/art/201309/411793_all.htm 3. http://gxl-ct001.iteye.com/blog/1982910 4. http://w

本文主要参考:1. http://blog.csdn.net/ab198604/article/details/8250461 (比较喜欢此作者通俗的写风,哈哈,所以整张篇幅大量粘贴他的内容)
2. http://os.51cto.com/art/201309/411793_all.htm
3. http://gxl-ct001.iteye.com/blog/1982910
4. http://www.cnblogs.com/tippoint/archive/2012/10/23/2735532.html
5. http://www.cnblogs.com/lanxuezaipiao/p/3525554.html
6. http://blog.csdn.net/skywalker_only/article/details/37905463
7. http://chj738871937.iteye.com/blog/2088735
8. http://blog.chinaunix.net/uid-20682147-id-4229024.html#_Toc807
9. http://ca.xcl0ud.net/wp-content/uploads/2014/05/Hadoop-2.pdf

目录:
一、引言
二、准备工作
三、配置hosts文件
四、建立hadoop运行帐号
五、配置ssh免密码连入
六、下载并解压hadoop安装包
七、配置namenode,修改site文件
八、配置hadoop-env.sh文件
九、配置slaves文件
十、向各节点复制hadoop
十一、格式化namenode
十二、启动HDFS
十三、启动YARN
十四、通过网站查看集群情况

一、引言
Hadoop是一种分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力高速运算和存储。Hadoop 发布的版本下载地址:http://apache.communilink.net/hadoop/common/

Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。
对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任 务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。
从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

要想深入的学习hadoop数据分析技术,首要的任务是必须要将hadoop集群环境搭建起来,可以将hadoop简化地想象成一个小软件,通过在各个物理节点上安装这个小软件,然后将其运行起来,就是一个hadoop分布式集群了。
说来简单,但是应该怎么做呢?不急,本文的主要目的就是让新手看了之后也能够亲自动手实施这些过程。由于设备有限,只能通过虚拟机来实施模拟集群环境,虽然说是虚机模拟,但是在虚机上的hadoop的集群搭建过程也可以使用在实际的物理节点中,思想是一样的。
也许有人想知道安装hadoop集群需要什么样的电脑配置,这里只针对虚拟机环境,下面介绍下我的情况:
CPU:Intel i5-3230M 2.6Ghz
内存: 6G
硬盘: 320G
系统:Win7

说完电脑的硬件配置,下面说说本人安装hadoop的准备条件。
注意:由于hadoop要求所有机器上hadoop的部署目录结构要求相同(因为在启动时按与主节点相同的目录启动其它任务节点),并且都有一个相同的用户名账户。参考各种文档上说的是所有机器都建立一个hadoop用户,使用这个账户来实现无密码认证。这里为了方便,分别在三台机器上都重新建立一个hadoop用户。这里注意大部分分布式的程序都有这样的要求,如前面博文我们介绍的MPI。

二、前期准备
2.1 安装Vmware WorkStation软件
有些人会问,为何要安装这个软件,这是一个VM公司提供的虚拟机工作平台,后面需要在这个平台上安装linux操作系统。

2.2 在虚拟机上安装linux操作系统
在前一步的基础之上安装linux操作系统,因为hadoop一般是运行在linux平台之上的,虽然现在也有windows版本,但是在linux上实施比较稳定,也不易出错,如果在windows安装hadoop集群,估计在安装过程中面对的各种问题会让人更加崩溃,其实我还没在windows上安装过,呵呵~
在虚拟机上安装的linux操作系统为ubuntu14.04,这是我安装的系统版本,为什么我会使用这个版本呢,很简单,因为是目前最新的。。。,其实用哪个linux系统都是可以的,比如,你可以用centos, redhat, fedora等均可,完全没有问题。在虚拟机上安装linux的过程也在此略过,可参见[VMware+Ubuntu安装,创建多个集群虚拟机]。

2.3 准备3个虚拟机节点
其实这一步骤非常简单,如果你已经完成了第2步,此时你已经准备好了第一个虚拟节点,那第二、三个虚拟机节点如何准备?可能你已经想明白了,你可以按第2步的方法,再分别安装两遍linux系统,就分别实现了第二、三个虚拟机节点。不过这个过程估计会让你很崩溃,其实还有一个更简单的方法,就是克隆,没错,就是在你刚安装好的第一个虚拟机节点,将整个系统目录进行复制,形成第二、三个虚拟机节点。简单吧!~~
很多人也许会问,这两个结点有什么用,原理很简单,按照hadoop集群的基本要求,其中一个是master结点,主要是用于运行hadoop程序中的namenode、secondorynamenode和jobtracker任务。用外两个结点均为slave结点,其中一个是用于冗余目的,如果没有冗余,就不能称之为hadoop了,所以模拟hadoop集群至少要有3个结点,如果电脑配置非常高,可以考虑增加一些其它的结点。slave结点主要将运行hadoop程序中的datanode和tasktracker任务。
所以,在准备好这3个结点之后,需要分别将linux系统的主机名重命名(因为前面是复制和粘帖操作产生另两上结点,此时这3个结点的主机名是一样的),重命名主机名的方法,见我前面的博文[VMware+Ubuntu安装,创建多个集群虚拟机]。
注意:主机名不能有下划线,否则启动时,SecondaryNameNode节点会报如下所示的错误。

以下是我对三个结点的ubuntu系统主机分别命名为:jacobxu-ubuntuNode001, jacobxu-ubuntuNode002, jacobxu-ubuntuNode003

2.4 配置Java环境
Java环境安装
所有的机器上都要安装JDK,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。安装JDK以及配置环境变量,需要以”root”的身份进行。
2.4.1 安装JDK
下载地址:http://www.oracle.com/technetwork/java/javase/index.html
JDK版本:jdk-7u65-linux-x64.gz
首先用root身份登录”jacobxu-ubuntuNode001″后在”/usr”下创建”java”文件夹,再将”jdk-7u65-linux-x64.gz”复制到”/usr/java”文件夹中,然后解压即可。查看”/usr/java”下面会发现多了一个名为”jdk1.7.0_65″文件夹,说明我们的JDK安装结束,删除”jdk-7u65-linux-x64.gz”文件,进入下一个”配置环境变量”环节。
2.4.2 配置环境变量
(1)编辑”/etc/profile”文件
编辑”/etc/profile”文件,在后面添加Java的”JAVA_HOME”、”CLASSPATH”以及”PATH”内容如下:
# set java environment
export JAVA_HOME=/usr/java/jdk1.7.0_65/
export JRE_HOME=/usr/java/jdk1.7.0_65/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

或者
# set java environment
export JAVA_HOME=/usr/java/jdk1.7.0_65/
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

以上两种意思一样,那么我们就选择第1种来进行设置。

(2)使配置生效
保存并退出,执行下面命令使其配置立即生效。
source /etc/profile 或 . /etc/profile

2.4.3 验证安装成功
配置完毕并生效后,用下面命令判断是否成功。
java -version

2.4.4 安装剩余机器
把上述流程走一遍就Ok

2.5 服务端口约定:
端口 作用
9000 fs.defaultFS,如:hdfs://172.25.40.171:9000
9001 dfs.namenode.rpc-address,DataNode会连接这个端口
50070 dfs.namenode.http-address
50470 dfs.namenode.https-address
50100 dfs.namenode.backup.address
50105 dfs.namenode.backup.http-address
50090 dfs.namenode.secondary.http-address,如:172.25.39.166:50090
50091 dfs.namenode.secondary.https-address,如:172.25.39.166:50091
50020 dfs.datanode.ipc.address
50075 dfs.datanode.http.address
50475 dfs.datanode.https.address
50010 dfs.datanode.address,DataNode的数据传输端口
8480 dfs.journalnode.rpc-address
8481 dfs.journalnode.https-address
8032 yarn.resourcemanager.address
8088 yarn.resourcemanager.webapp.address,YARN的http端口
8090 yarn.resourcemanager.webapp.https.address
8030 yarn.resourcemanager.scheduler.address
8031 yarn.resourcemanager.resource-tracker.address
8033 yarn.resourcemanager.admin.address
8042 yarn.nodemanager.webapp.address
8040 yarn.nodemanager.localizer.address
8188 yarn.timeline-service.webapp.address
10020 mapreduce.jobhistory.address
19888 mapreduce.jobhistory.webapp.address
2888 ZooKeeper,如果是Leader,用来监听Follower的连接
3888 ZooKeeper,用于Leader选举
2181 ZooKeeper,用来监听客户端的连接
60010 hbase.master.info.port,HMaster的http端口
60000 hbase.master.port,HMaster的RPC端口
60030 hbase.regionserver.info.port,HRegionServer的http端口
60020 hbase.regionserver.port,HRegionServer的RPC端口
8080 hbase.rest.port,HBase REST server的端口
10000 hive.server2.thrift.port
9083 hive.metastore.uris

基本条件准备好了,后面要干实事了,心急了吧,呵呵,别着急,只要跟着本人的思路,一步一个脚印地,一定能成功布署安装好hadoop集群的。

三、配置hosts文件(三个虚拟机都要做):参见:[分布式并行库MPICH2安装] 7.1节;

四、建立hadoop运行帐号(三个虚拟机都要做) (先行跳过,我们可用现在的用户组及用户)
即为hadoop集群专门设置一个用户组及用户,这部分比较简单,参考示例如下:
sudo groupadd hadoop //设置hadoop用户组
sudo useradd –s /bin/bash –d /home/jacobxu –m jacobxu –g hadoop –G admin //添加一个jacobxu用户,此用户属于hadoop用户组,且具有admin权限。
sudo passwd jacobxu //设置用户jacobxu登录密码
su jacobxu //切换到jacobxu用户中

上述3个虚机结点均需要进行以上步骤来完成hadoop运行帐号的建立。

五、配置ssh免密码连入(三个虚拟机都要做):参见:[分布式并行库MPICH2安装] 7.3节;

六、下载并解压hadoop安装包(三个虚拟机都要做)
关于安装包的下载就不多说了,不过可以提一下目前我使用的版本为hadoop-2.4.1,
这个版本差不多是最新的,不过不一定稳定,先尝新了,后面等熟练了再用其它版本也不急。(注:《hadoop权威指南》这本书也是针对hadoop-0.20.2版本介绍的)。压缩包放在/home/jacoxu/hadoop/目录下,进行解压:
jacobxu@jacobxu-ubuntuNode001:~/hadoop$ tar -xf hadoop-2.4.1.tar.gz
注:解压后hadoop软件目录在/home/jacobxu/hadoop/hadoop-2.4.1/下。

七、配置namenode,修改site文件
接着配置hadoop路径,这是为了方便后面操作,这部分配置过程主要通过修改/etc/profile文件来完成,在profile文件中添加如下两行代码:
export HADOOP_HOME=/home/jacobxu/hadoop/hadoop-2.4.1
export PATH=$PATH;$HADOOP_HOME/bin

然后执行: source /etc/profile
让配置文件立刻生效。上面配置过程每个结点都要进行一遍。

到目前为止,准备工作已经完成,下面开始修改hadoop的配置文件了,即各种site文件,配置文件放在$HADOOP_HOME/etc/hadoop目录下,对于Hadoop 2.3.0和Hadoop 2.4.0版本,该目录下的core-site.xml、yarn-site.xml、hdfs-site.xml和mapred-site.xml都是空的。如果不配置好就启动,如执行start-dfs.sh,则会遇到各种错误。
可从$HADOOP_HOME/share/hadoop目录下拷贝一份到/etc/hadoop目录,然后在此基础上进行修改(以下内容可以直接拷贝执行,2.3.0版本中各default.xml文件路径不同于2.4.0版本):
jacobxu@jacobxu-ubuntuNode001:~/hadoop/hadoop-2.4.1/etc/hadoop$ cp ../../share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xml ./core-site.xml
jacobxu@jacobxu-ubuntuNode001:~/hadoop/hadoop-2.4.1/etc/hadoop$ cp ../../share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml ./hdfs-site.xml
jacobxu@jacobxu-ubuntuNode001:~/hadoop/hadoop-2.4.1/etc/hadoop$ cp ../../share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml ./yarn-site.xml
jacobxu@jacobxu-ubuntuNode001:~/hadoop/hadoop-2.4.1/etc/hadoop$ cp ../../share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml ./mapred-site.xml

接下来,需要对默认的core-site.xml、yarn-site.xml、hdfs-site.xml和mapred-site.xml进行适当的修改,否则仍然无法启动成功。

core-site.xml配置如下:
属性名 ? ? ? ? ? ? ?属性值 ? ? ? ? ? ? ? ?涉及范围 ? ? ? ? ? ? ? ? ? 备注
fs.defaultFS ? ? ?hdfs://192.168.111.128:9000 ? ? 所有节点 ? ? ?Hadoop-1.x中的参数为fs.default.name
hadoop.tmp.dir ? ? ?/home/jacobxu/hadoop/tmp-jacoxu? ? ? ?所有节点

注意启动之前,需要将配置的目录创建好,如创建好/home/jacobxu/hadoop/tmp-jacoxu目录,下面也一样。

hdfs-site.xml的内容配置如下:
属性名 ? ? ? ? ? ?属性值 ? ? ? ? ? ? ? ??涉及范围
dfs.namenode.rpc-address ??192.168.111.128:9001 ??所有节点
dfs.namenode.secondary.http-address ?192.168.111.129:50090?NameNode,?SecondaryNameNode(由于没有那么多节点,此处我们先不配置了)
dfs.namenode.name.dir? /home/jacobxu/hadoop/name-jacoxu?NameNode,?SecondaryNameNode
dfs.datanode.data.dir ?/home/jacobxu/hadoop/data-jacoxu ??所有DataNode
dfs.replication 1

mapred-site.xml的内容配置如下:
属性名 ? ? ? ? ? ? ?属性值 ? ? ? ? ? ? ? ?涉及范围
mapreduce.framework.name ??yarn

yarn-site.xml的内容配置如下:
属性名 ? ? ? ? ? ? ?属性值 ? ? ? ? ? ? ? ?涉及范围
yarn.resourcemanager.hostname ? ?192.168.111.128 ? ?ResourceManager, NodeManager
yarn.nodemanager.hostname ? ?0.0.0.0 ? ??所有的NodeManager

yarn.nodemanager.hostname如果配置成具体的IP,如10.12.154.79,则会导致每个NamoManager的配置不同。

八、配置hadoop-env.sh文件
修改所有节点上的$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件,在靠近文件头部分加入:export JAVA_HOME=/usr/java/jdk1.7.0_65
特别说明一下:虽然在/etc/profile已经添加了JAVA_HOME,但仍然得修改所有节点上的hadoop-env.sh,否则启动时,报错。

添加如下内容:
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib”

九、配置slaves文件
修改NameNode和SecondaryNameNode上的$HADOOP_HOME/etc/hadoop/slaves文件,将slaves的节点IP(也可以是相应的主机名)一个人加进去,一行一个IP,如下所示:
> cat slaves
192.168.111.129
192.168.111.130

十、向各节点复制hadoop
利用scp,复制hadoop文件夹中的内容到各个节点中去;
jacobxu@jacobxu-ubuntuNode001:~/hadoop/hadoop-2.4.1/etc/hadoop$ scp * jacobxu@192.168.111.129:/home/jacobxu/hadoop/hadoop-2.4.1/etc/hadoop/

注:记着同时再其他节点上创建文件夹。

十一、格式化namenode (这一步在主结点master上进行操作)
启动Hadoop之前需要对Namenode先进行格式化
1) 进入$HADOOP_HOME/bin目录
2) 进行格式化:./hdfs namenode -format
如果完成有,输出包含“INFO util.ExitUtil: Exiting with status 0”,则表示格式化成功。如此收尾:
14/07/21 13:32:34 INFO util.ExitUtil: Exiting with status 0
14/07/21 13:32:34 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at jacobxu-ubuntuNode001/192.168.111.128
************************************************************/

在进行格式化时,如果没有在/etc/hosts文件中添加主机名和IP的映射:“172.25.40.171 VM-40-171-sles10-64”,则会报如下所示错误:
14/04/17 03:44:09 WARN net.DNS: Unable to determine local hostname -falling back to “localhost”
java.net.UnknownHostException: VM-40-171-sles10-64: VM-40-171-sles10-64: unknown error
at java.net.InetAddress.getLocalHost(InetAddress.java:1484)
at org.apache.hadoop.net.DNS.resolveLocalHostname(DNS.java:264)
at org.apache.hadoop.net.DNS.(DNS.java:57)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.newBlockPoolID(NNStorage.java:945)
at org.apache.hadoop.hdfs.server.namenode.NNStorage.newNamespaceInfo(NNStorage.java:573)
at org.apache.hadoop.hdfs.server.namenode.FSImage.format(FSImage.java:144)
at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:845)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1256)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1370)
Caused by: java.net.UnknownHostException: VM-40-171-sles10-64: unknown error
at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:907)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1302)
at java.net.InetAddress.getLocalHost(InetAddress.java:1479)
… 8 more

十二、启动HDFS (这一步在主结点master上进行操作)
12.1 启动HDFS.
1) 进入$HADOOP_HOME/sbin目录
2) 启动HDFS:./start-dfs.sh

启动时,遇到如下所示的错误,则表示NameNode不能免密码登录自己。如果之前使用IP可以免密码登录自己,则原因一般是因为没有使用主机名登录过自己,因此解决办法是使用主机名SSH一下,比如:ssh hadoop@VM_40_171_sles10_64,然后再启动。
Starting namenodes on [VM_40_171_sles10_64]
VM_40_171_sles10_64: Host key not found from database.
VM_40_171_sles10_64: Key fingerprint:
VM_40_171_sles10_64: xofiz-zilip-tokar-rupyb-tufer-tahyc-sibah-kyvuf-palik-hazyt-duxux
VM_40_171_sles10_64: You can get a public key’s fingerprint by running
VM_40_171_sles10_64: % ssh-keygen -F publickey.pub
VM_40_171_sles10_64: on the keyfile.
VM_40_171_sles10_64: warning: tcgetattr failed in ssh_rl_set_tty_modes_for_fd: fd 1: Invalid argument

这里出现了一些WARNING, 暂且不管了(注,后面还会遇到):
14/07/21 15:42:45 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring.
14/07/21 15:42:45 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring.
14/07/21 15:42:46 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring.
14/07/21 15:42:46 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring.
14/07/21 15:42:46 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring.
14/07/21 15:42:46 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring.
14/07/21 15:42:46 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable
14/07/21 15:42:46 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring.
14/07/21 15:42:46 WARN conf.Configuration: mapred-site.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring.
Found 1 items

12.2 用jps检验各后台进程是否成功启动
1) 使用JDK提供的jps命令,查看相应的进程是否已启动
2) 检查$HADOOP_HOME/logs目录下的log和out文件,看看是否有异常信息。
12.2.1. DataNode
执行jps命令,可看到DataNode进程:
$ jps
18669 DataNode
24542 Jps
12.2.2. NameNode
执行jps命令,可看到NameNode进程:
$ jps
18669 NameNode
24542 Jps
12.2.3. SecondaryNameNode
执行jps命令,可看到:
$ jps
24542 Jps
3839 SecondaryNameNode

12.3 执行HDFS命令
执行HDFS命令,以进一步检验是否已经安装成功和配置好。关于HDFS命令的用法,直接运行命令hdfs或hdfs dfs,即可看到相关的用法说明。
12.3.1. hdfs dfs ls
“hdfs dfs -ls”带一个参数,如果参数以“hdfs://URI”打头表示访问HDFS,否则相当于ls。其中URI为NameNode的IP或主机名,可以包含端口号,即hdfs-site.xml中“dfs.namenode.rpc-address”指定的值。
“hdfs dfs -ls”要求默认端口为8020,如果配置成9000,则需要指定端口号,否则不用指定端口,这一点类似于浏览器访问一个URL。示例:
> hdfs dfs -ls hdfs://192.168.111.128:9001/

9001后面的斜杠/是和必须的,否则被当作文件。如果不指定端口号9001,则使用默认的8020,“192.168.111.128:9001”由hdfs-site.xml中“dfs.namenode.rpc-address”指定。
不难看出“hdfs dfs -ls”可以操作不同的HDFS集群,只需要指定不同的URI。
文件上传后,被存储在DataNode的data目录下(由DataNode的hdfs-site.xml中的属性“dfs.datanode.data.dir”指定),如:
/home/jacobxu/hadoop/data-jacoxu/current/BP-1086845186-192.168.111.128-1405920752636/current/finalized/blk_1073741826
文件名中的“blk”是block,即块的意思,默认情况下blk_1073741825即为文件的一个完整块,Hadoop未对它进额外处理。
12.3.2. hdfs dfs -put
上传文件命令,示例:
> hdfs dfs -put ./data.txt hdfs://192.168.111.128:9001/
12.3.3. hdfs dfs -rm
删除文件命令,示例:
> hdfs dfs -rm hdfs://192.168.111.128:9001/data.txt
Deleted hdfs://192.168.111.128:9001/SuSE-release

12.3.4 hadoop fs -ls 也可以直接使用,不用加后面的后缀 hdfs:// 什么的
HDFS的基本操作,见[http://supercharles888.blog.51cto.com/609344/876099]

十三、启动YARN
(暂时先不启动 YARN)
十四、通过网站查看集群情况
输入: http://192.168.111.128:50070/dfshealth.html#tab-datanode 可以看到Datanode节点的数据分布,及存储占用情况,如下:
Datanode Information
In operation
Node ? Last contact ? Admin State ? Capacity ? Used ? Non DFS Used ? Remaining ? Blocks ? Block pool used ? Failed Volumes ? Version
jacobxu-ubuntuNode003 (192.168.111.130:50010) 0 In Service 17.59 GB 24 KB 6.12 GB 11.47 GB 0 24 KB (0%) 0 2.4.1
jacobxu-ubuntuNode002 (192.168.111.129:50010) 0 In Service 17.59 GB 352 KB 6.12 GB 11.47 GB 1 352 KB (0%) 0 2.4.1

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PyCharm与PyTorch完美结合:安装配置步骤详解 PyCharm与PyTorch完美结合:安装配置步骤详解 Feb 21, 2024 pm 12:00 PM

PyCharm是一款强大的集成开发环境(IDE),而PyTorch是深度学习领域备受欢迎的开源框架。在机器学习和深度学习领域,使用PyCharm和PyTorch进行开发可以极大地提高开发效率和代码质量。本文将详细介绍如何在PyCharm中安装配置PyTorch,并附上具体的代码示例,帮助读者更好地利用这两者的强大功能。第一步:安装PyCharm和Python

Linux系统中GDM的工作原理及配置方法 Linux系统中GDM的工作原理及配置方法 Mar 01, 2024 pm 06:36 PM

标题:Linux系统中GDM的工作原理及配置方法在Linux操作系统中,GDM(GNOMEDisplayManager)是一种常见的显示管理器,用于控制图形用户界面(GUI)登录和用户会话管理。本文将介绍GDM的工作原理和配置方法,以及提供具体的代码示例。一、GDM的工作原理GDM是GNOME桌面环境下的显示管理器,负责启动X服务器并提供登录界面,用户输

在PyCharm中如何设置Git配置 在PyCharm中如何设置Git配置 Feb 20, 2024 am 09:47 AM

标题:如何在PyCharm中正确配置Git在现代软件开发中,版本控制系统是非常重要的工具,而Git作为其中一种流行的版本控制系统,为开发者提供了强大的功能和灵活的操作。而PyCharm作为一款功能强大的Python集成开发环境,自带了对Git的支持,能够让开发者更加便捷地管理代码版本。本文将介绍如何在PyCharm中正确地配置Git,以便于在开发过程中更好地

了解Linux Bashrc:功能、配置与使用方法 了解Linux Bashrc:功能、配置与使用方法 Mar 20, 2024 pm 03:30 PM

了解LinuxBashrc:功能、配置与使用方法在Linux系统中,Bashrc(BourneAgainShellruncommands)是一个非常重要的配置文件,其中包含了系统启动时自动运行的各种命令和设置。Bashrc文件通常位于用户的家目录下,是一个隐藏文件,它的作用是为用户自定义设置Bashshell的环境。一、Bashrc的功能设置环境

简单易懂的PyCharm配置Git教程 简单易懂的PyCharm配置Git教程 Feb 20, 2024 am 08:28 AM

PyCharm是一款常用的集成开发环境(IDE),在日常开发中,使用Git管理代码是必不可少的。本文将介绍如何在PyCharm中配置Git,并使用Git进行代码管理,并附带具体代码示例。第一步:安装Git首先,确保在你的计算机上已经安装了Git。如果没有安装,可以前往[Git官网](https://git-scm.com/)下载并安装最新版本的Git

win11系统如何配置工作组 win11系统如何配置工作组 Feb 22, 2024 pm 09:50 PM

Win11系统如何配置工作组工作组是一种在局域网中连接多台计算机的方式,它允许计算机之间共享文件、打印机和其他资源。在Win11系统中,配置工作组非常简单,只需按照以下步骤操作即可。步骤1:打开“设置”应用程序首先,点击Win11系统的“开始”按钮,然后在弹出的菜单中选择“设置”应用程序。你也可以使用快捷键“Win+I”打开“设置”。步骤2:选择“系统”在“设置”应用程序中,你会看到多个选项。请点击“系统”选项,进入系统设置页面。步骤3:选择“关于”在“系统”设置页面中,你会看到多个子选项。请点

Linux系统中如何配置和安装FTPS Linux系统中如何配置和安装FTPS Mar 20, 2024 pm 02:03 PM

标题:Linux系统中如何配置和安装FTPS,需要具体代码示例在Linux系统中,FTPS是一种安全的文件传输协议,与FTP相比,FTPS通过TLS/SSL协议对传输的数据进行加密,提高了数据传输的安全性。在本文中,将介绍如何在Linux系统中配置和安装FTPS,并提供具体的代码示例。步骤一:安装vsftpd打开终端,输入以下命令安装vsftpd:sudo

MyBatis Generator配置参数解读及最佳实践 MyBatis Generator配置参数解读及最佳实践 Feb 23, 2024 am 09:51 AM

MyBatisGenerator是MyBatis官方提供的一个代码生成工具,可以帮助开发人员快速生成符合数据库表结构的JavaBean、Mapper接口以及XML映射文件。在使用MyBatisGenerator进行代码生成的过程中,配置参数的设置是至关重要的。本文将从配置参数的角度出发,深入探讨MyBatisGenerator的

See all articles