文档介绍:历史数据平台技术讨论
大数据平台基本组成部分
HDFS
YARN
Hive
Hbase
Sqoop
HDFS是什么?
Hadoop分布式文件系统(HDFS) 是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
HDFS架构
HDFS命令行操作1
HDFS资源URI格式:
scheme://authority/path
scheme:协议名,hdfs
authority:namenode主机名
path:路径
示例:hdfs://localhost:9000/user/chunk/
假设已经在core-
=hdfs://localhost:9000
则仅使用/user/chunk/。
HDFS命令行操作2
hadoop fs -mkdir /user/trunk
hadoop fs -ls /user
hadoop fs -lsr /user (递归的)
hadoop fs -put /user/trunk
hadoop fs -put . (复制到hdfs当前目录下,首先要创建当前目录)
hadoop fs -get /user/trunk/ . (复制到本地当前目录下)
hadoop fs -cat /user/trunk/
hadoop fs -tail /user/trunk/ (查看最后1000字节)
hadoop fs -rm /user/trunk/
hadoop fs -help ls (查看ls命令的帮助文档)
HDFS上传文件编程
InputStream in = new BufferedInputStream(new FileInputStream(localSrcFile));
FileSystem fs = (("hdfs://:54310/user/hdfs/testdir/"), conf);
OutputStream out = ();
int readLen = (ioBuffer);
while(-1 != readLen){
(ioBuffer, 0, readLen);
uploadBytes += readLen;
readLen = (ioBuffer);
}
HDFS下载文件
FileSystem fs = (("hdfs://:54310/user/hdfs/testdir/"), conf);
hdfsInStream = ();
OutputStream out = new FileOutputStream(localDstFile);
int readLen = (ioBuffer);
while(-1 != readLen){
(ioBuffer, 0, readLen);
downloadBytes += readLen;
readLen = (ioBuffer);
}
HDFS更新文件(追加)
FileSystem fs = (("hdfs://:54310/user/hdfs/testdir/"), conf);
FSDataOutputStream out = ();
int readLen = (ioBuffer);
while(-1 != readLen){
(ioBuffer, 0, readLen);
appendBytes = (appendBytes < 0) ? readLen:(appendBytes + readLen);
readLen = (ioBuffer);
}
YARN是什么
Yet Another Resource Negotia