Hadoop 2.4.1在Ubuntu14.04上的集群配置
本文主要参考: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
原文地址:Hadoop 2.4.1在Ubuntu14.04上的集群配置, 感谢原作者分享。