读文件
客户端(client)用FileSystem的open()函数打开文件 DistributedFileSystem用RPC调用元数据节点,得到文件的数据块信息。 对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。 DistributedFileSystem返回FSDataInputStream给客户端,用来读取数据。 客户端调用stream的read()函数开始读取数据。 DFSInputStream连接保存此文件第一个数据块的最近的数据节点。 Data从数据节点读到客户端(client) 当此数据块读取完毕时,DFSInputStream关闭和此数据节点的连接,然后连接此文件下一个数据块的最近的数据节点。 当客户端读取完毕数据的时候,调用FSDataInputStream的close函数。 在读取数据的过程中,如果客户端在与数据节点通信出现错误,则尝试连接包含此数据块的下一个数据节点。 失败的数据节点将被记录,以后不再连接。安全模式
Name启动的时候,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作,一旦在内存中成功建立文件系统元数据映射,则创建一个新的fsimage文件(SecondaryNameNode)和一个空的(edits)编辑日志。 此刻Namenode运行"安全模式",即Namenode的文件系统对于客户端来说是只读的。(显示目录,显示文件内容等。但是 增删改都会失败)。 1.3 单机安装系统环境
名称版本下载linux CentOS 百度
jdk 1.7 百度
hadoop 2.6.0 百度
jdk安装
SSH免验证
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys配置Hadoop
一.Hadoop-env.sh
Hadoop也是需要java的,所以我们需要配置(hadoop-env.sh)它调用的java。 vi hadoop-env.sh 它默认的配置是:export JAVA_HOME=${JAVA_HOME}。这样的话必须定义变量才能启动JAVA,所以我们需要将(hadoop-env.sh)里面的JAVA_HOME变量指定的内容改成我们的JAVA安装的绝对路径,我JDK安装的路径在"/usr/bin/java"目录下。 export JAVA_HOME=/usr/bin/java二.core-site.xml
我们需要配置两个参数 defaultFS(HDFS默认名称) //配置HDFS名称 hdfs:协议头,如:http https 等 localhost:主机名 9000:端口 <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>三.hdfs-site.xml
replication(副本个数 默认为3个),因为我这里搭建的是单机所以只要一个。 replication:设置的副本个数 <property> <name>dfs.replication</name> <value>1</value> </property>四.mapred-site.xml
==注意:mapred.site.xml开始并不存在,而是mapred-site.xml.template。我们需要使用cp命令一份命名为mapred.site.xml==
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>五.yarn-site.xml
<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>localhost:8032</value> </property>格式化HDFS
1. $ bin/hdfs namenode -format 格式化NameNode,不需要每次启动都需要格式化,机器第一次启动的时候需要格式化一次 16/10/26 03:30:03 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT] 16/10/26 03:30:03 INFO namenode.NameNode: createNameNode [-format] 16/10/26 03:30:05 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Formatting using clusterid: CID-2eba6061-bea3-4e86-85cc-ebb1b51cf730 16/10/26 03:30:05 INFO namenode.FSNamesystem: No KeyProvider found. 16/10/26 03:30:05 INFO namenode.FSNamesystem: fsLock is fair:true 16/10/26 03:30:06 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit=1000 16/10/26 03:30:06 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true 16/10/26 03:30:06 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.000 16/10/26 03:30:06 INFO blockmanagement.BlockManager: The block deletion will start around 2016 Oct 26 03:30:06 16/10/26 03:30:06 INFO util.GSet: Computing capacity for map BlocksMap 16/10/26 03:30:06 INFO util.GSet: VM type = 64-bit 16/10/26 03:30:06 INFO util.GSet: 2.0% max memory 966.7 MB = 19.3 MB 16/10/26 03:30:06 INFO util.GSet: capacity = 2^21 = 2097152 entries 16/10/26 03:30:06 INFO blockmanagement.BlockManager: dfs.block.access.token.enable=false 16/10/26 03:30:06 INFO blockmanagement.BlockManager: defaultReplication = 1 16/10/26 03:30:06 INFO blockmanagement.BlockManager: maxReplication = 512 16/10/26 03:30:06 INFO blockmanagement.BlockManager: minReplication = 1 16/10/26 03:30:06 INFO blockmanagement.BlockManager: maxReplicationStreams = 2 16/10/26 03:30:06 INFO blockmanagement.BlockManager: replicationRecheckInterval = 3000 16/10/26 03:30:06 INFO blockmanagement.BlockManager: encryptDataTransfer = false 16/10/26 03:30:06 INFO blockmanagement.BlockManager: maxNumBlocksToLog = 1000 16/10/26 03:30:06 INFO namenode.FSNamesystem: fsOwner = root (auth:SIMPLE) 16/10/26 03:30:06 INFO namenode.FSNamesystem: supergroup = supergroup 16/10/26 03:30:06 INFO namenode.FSNamesystem: isPermissionEnabled = true 16/10/26 03:30:06 INFO namenode.FSNamesystem: HA Enabled: false 16/10/26 03:30:06 INFO namenode.FSNamesystem: Append Enabled: true 16/10/26 03:30:06 INFO util.GSet: Computing capacity for map INodeMap 16/10/26 03:30:06 INFO util.GSet: VM type = 64-bit 16/10/26 03:30:06 INFO util.GSet: 1.0% max memory 966.7 MB = 9.7 MB 16/10/26 03:30:06 INFO util.GSet: capacity = 2^20 = 1048576 entries 16/10/26 03:30:06 INFO namenode.NameNode: Caching file names occuring more than 10 times 16/10/26 03:30:06 INFO util.GSet: Computing capacity for map cachedBlocks 16/10/26 03:30:06 INFO util.GSet: VM type = 64-bit 16/10/26 03:30:06 INFO util.GSet: 0.25% max memory 966.7 MB = 2.4 MB 16/10/26 03:30:06 INFO util.GSet: capacity = 2^18 = 262144 entries 16/10/26 03:30:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.threshold-pct = 0.9990000128746033 16/10/26 03:30:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.min.datanodes = 0 16/10/26 03:30:06 INFO namenode.FSNamesystem: dfs.namenode.safemode.extension = 30000 16/10/26 03:30:06 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10 16/10/26 03:30:06 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10 16/10/26 03:30:06 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25 16/10/26 03:30:06 INFO namenode.FSNamesystem: Retry cache on namenode is enabled 16/10/26 03:30:06 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis 16/10/26 03:30:06 INFO util.GSet: Computing capacity for map NameNodeRetryCache 16/10/26 03:30:06 INFO util.GSet: VM type = 64-bit 16/10/26 03:30:06 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB 16/10/26 03:30:06 INFO util.GSet: capacity = 2^15 = 32768 entries 16/10/26 03:30:06 INFO namenode.NNConf: ACLs enabled? false 16/10/26 03:30:06 INFO namenode.NNConf: XAttrs enabled? true 16/10/26 03:30:06 INFO namenode.NNConf: Maximum size of an xattr: 16384 16/10/26 03:30:06 INFO namenode.FSImage: Allocated new BlockPoolId: BP-857467713-127.0.0.1-1477467006754 16/10/26 03:30:06 INFO common.Storage: Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted. 16/10/26 03:30:07 INFO namenode.FSImageFormatProtobuf: Saving image file /tmp/hadoop-root/dfs/name/current/fsimage.ckpt_0000000000000000000 using no compression 16/10/26 03:30:07 INFO namenode.FSImageFormatProtobuf: Image file /tmp/hadoop-root/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 351 bytes saved in 0 seconds. 16/10/26 03:30:07 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 16/10/26 03:30:07 INFO util.ExitUtil: Exiting with status 0 16/10/26 03:30:07 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.1 ************************************************************/ [root@localhost hadoop-2.6.0-cdh5.8.2]#