欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-05-09 23:50:42
...

本文主要参考: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