데이터 베이스 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 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PyCharm에서 Git 구성을 설정하는 방법 PyCharm에서 Git 구성을 설정하는 방법 Feb 20, 2024 am 09:47 AM

제목: PyCharm에서 Git을 올바르게 구성하는 방법 현대 소프트웨어 개발에서 버전 제어 시스템은 매우 중요한 도구이며, 널리 사용되는 버전 제어 시스템 중 하나인 Git은 개발자에게 강력한 기능과 유연한 작업을 제공합니다. 강력한 Python 통합 개발 환경인 PyCharm은 Git을 지원하므로 개발자는 코드 버전을 보다 편리하게 관리할 수 있습니다. 이 기사에서는 개발 프로세스 중에 더 나은 개발을 촉진하기 위해 PyCharm에서 Git을 올바르게 구성하는 방법을 소개합니다.

Linux 시스템에서 GDM의 작동 원리 및 구성 방법 Linux 시스템에서 GDM의 작동 원리 및 구성 방법 Mar 01, 2024 pm 06:36 PM

제목: Linux 시스템에서 GDM의 작동 원리 및 구성 방법 Linux 운영 체제에서 GDM(GNOMEDisplayManager)은 그래픽 사용자 인터페이스(GUI) 로그인 및 사용자 세션 관리를 제어하는 ​​데 사용되는 일반적인 디스플레이 관리자입니다. 이 기사에서는 GDM의 작동 원리와 구성 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. GDM의 작동 원리 GDM은 GNOME 데스크탑 환경의 디스플레이 관리자이며 X 서버를 시작하고 사용자에게 로그인 인터페이스를 제공합니다.

PyCharm과 PyTorch의 완벽한 조합: 자세한 설치 및 구성 단계 PyCharm과 PyTorch의 완벽한 조합: 자세한 설치 및 구성 단계 Feb 21, 2024 pm 12:00 PM

PyCharm은 강력한 통합 개발 환경(IDE)이고, PyTorch는 딥 러닝 분야에서 인기 있는 오픈 소스 프레임워크입니다. 머신러닝과 딥러닝 분야에서 PyCharm과 PyTorch를 개발에 활용하면 개발 효율성과 코드 품질을 크게 향상시킬 수 있습니다. 이 기사에서는 PyCharm에서 PyTorch를 설치 및 구성하는 방법을 자세히 소개하고 독자가 이 두 가지의 강력한 기능을 더 잘 활용할 수 있도록 특정 코드 예제를 첨부합니다. 1단계: PyCharm 및 Python 설치

Linux Bashrc 이해: 기능, 구성 및 사용법 Linux Bashrc 이해: 기능, 구성 및 사용법 Mar 20, 2024 pm 03:30 PM

Linux Bashrc 이해: 기능, 구성 및 사용법 Linux 시스템에서 Bashrc(BourneAgainShellruncommands)는 시스템 시작 시 자동으로 실행되는 다양한 명령과 설정이 포함된 매우 중요한 구성 파일입니다. Bashrc 파일은 일반적으로 사용자의 홈 디렉토리에 있으며 숨겨진 파일입니다. 해당 기능은 사용자를 위해 Bashshell 환경을 사용자 정의하는 것입니다. 1. Bashrc 기능 설정 환경

win11 시스템에서 작업 그룹을 구성하는 방법 win11 시스템에서 작업 그룹을 구성하는 방법 Feb 22, 2024 pm 09:50 PM

Win11에서 작업 그룹을 구성하는 방법 작업 그룹은 로컬 영역 네트워크에서 여러 컴퓨터를 연결하는 방법으로, 파일, 프린터 및 기타 리소스를 컴퓨터 간에 공유할 수 있습니다. Win11 시스템에서는 작업 그룹을 구성하는 것이 매우 간단합니다. 아래 단계를 따르십시오. 1단계: "설정" 애플리케이션을 엽니다. 먼저 Win11 시스템의 "시작" 버튼을 클릭한 다음 팝업 메뉴에서 "설정" 애플리케이션을 선택합니다. "Win+I" 단축키를 사용하여 "설정"을 열 수도 있습니다. 2단계: "시스템"을 선택하세요. 설정 앱에 여러 옵션이 표시됩니다. 시스템 설정 페이지로 들어가려면 "시스템" 옵션을 클릭하세요. 3단계: "정보"를 선택합니다. "시스템" 설정 페이지에 여러 하위 옵션이 표시됩니다. 클릭하세요

간단하고 이해하기 쉬운 PyCharm 구성 Git 튜토리얼 간단하고 이해하기 쉬운 PyCharm 구성 Git 튜토리얼 Feb 20, 2024 am 08:28 AM

PyCharm은 일반적으로 사용되는 통합 개발 환경(IDE)입니다. 일상적인 개발에서는 Git을 사용하여 코드를 관리하는 것이 필수적입니다. 이 기사에서는 특정 코드 예제와 함께 PyCharm에서 Git을 구성하고 코드 관리를 위해 Git을 사용하는 방법을 소개합니다. 1단계: Git 설치 먼저 컴퓨터에 Git이 설치되어 있는지 확인하세요. 설치되어 있지 않은 경우 [Git 공식 홈페이지](https://git-scm.com/)에서 최신 버전의 Git을 다운로드하여 설치할 수 있습니다.

Linux 시스템에서 FTPS를 구성하고 설치하는 방법 Linux 시스템에서 FTPS를 구성하고 설치하는 방법 Mar 20, 2024 pm 02:03 PM

제목: Linux 시스템에서 FTPS를 구성하고 설치하는 방법에는 특정 코드 예제가 필요합니다. Linux 시스템에서 FTPS는 FTP와 비교하여 전송된 데이터를 TLS/SSL 프로토콜을 통해 암호화하므로 성능이 향상됩니다. 데이터 전송의 보안. 이 기사에서는 Linux 시스템에서 FTPS를 구성 및 설치하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1단계: vsftpd 설치 터미널을 열고 다음 명령을 입력하여 vsftpd를 설치합니다. sudo

CentOS7 시스템에 DRBD를 설치하고 구성하는 방법은 무엇입니까? 고가용성 및 데이터 중복성 구현에 대한 튜토리얼입니다! CentOS7 시스템에 DRBD를 설치하고 구성하는 방법은 무엇입니까? 고가용성 및 데이터 중복성 구현에 대한 튜토리얼입니다! Feb 22, 2024 pm 02:13 PM

DRBD(DistributedReplicatedBlockDevice)는 데이터 중복성과 고가용성을 달성하기 위한 오픈 소스 솔루션입니다. 다음은 CentOS7 시스템에 DRBD를 설치하고 구성하는 튜토리얼입니다. DRBD 설치: 터미널을 열고 CentOS7 시스템에 관리자로 로그인합니다. 다음 명령을 실행하여 DRBD 패키지를 설치하십시오. sudoyuminstalldrbd DRBD 구성: DRBD 구성 파일(일반적으로 /etc/drbd.d 디렉토리에 있음)을 편집하여 DRBD 자원에 대한 설정을 구성하십시오. 예를 들어 기본 노드와 백업 노드의 IP 주소, 포트 및 장치를 정의할 수 있습니다. 기본 노드와 백업 노드 사이에 네트워크 연결이 있는지 확인하십시오.

See all articles