hadoop伪发布安装配置
2015-12-31 10:08
309 查看
hadoop伪发布安装配置
1.在目录/usr/softinstall/hadoop/etc/hadoop,配置文件修改。
1.1 第一个:hadoop-env.sh
1.2 第二个:core-site.xml
1.3 第三个:hdfs-site.xml
1.4 第四个:mapred-site.xml.template
1.5 第五个:yarn-site.xml
2.1 格式化HDFS(namenode)第一次使用时要格式化
2.2 启动hadoop
2.2.1 先启动HDFS
2.2.2 再启动YARN
3.1 验证是否启动成功
3.2 查看页面
查看地址:http://www.aboutyun.com/thread-8293-1-1.html
java操作hdfs
1.1 新建一个maven项目
1.2 在http://mvnrepository.com/tags/maven 中找到三个jar包配置。把其加到pom.xml文件中。
1.3 新建一个java类
集群间复制
hdfs笔记
1.hadoop是什么?
hadoop是适合大数据存储和大数据计算的平台。
apache hadoop2.6.0
在hadoop2包括3个核心组成:HDFS2、Yarn、MapReduce。
在hadoop1中,包括2个核心组成:HDFS、MapReduce。
2.HDFS负责分布式存储。
3.MapReduce是负责批处理的。
4.伪分布安装
----------------------------------------------------
1.分布式文件系统是位于操作系统之上的一层文件管理系统。
2.HDFS中的数据存储,在用户看来,非常类似于linux的文件管理——树状的目录结。
3.hdfs中的文件内容是可以追加的.
4.启动HDFS进程的用户是超级用户,不受任何权限限制。
5.NameNode包含文件与数据的映射
为什么文件夹没有副本?
是否可以插入内容到HDFS文件的前面?
7.core-site.xml 中的配置是覆盖core-site.xml.default 中的配置属性的。
8.-rw-r--r-- 3 ipms ipms 10735016 2015-07-29 14:25 /rawdata/xdr/lte/lte_x2/20150729/14/20/210_2_X2AP_201507291415_00.CSV
其中3(-rw-r--r-- 3) 表示副本数。 文件夹是没有这个标示的,其用“-” 表示。
HDFS dfsadmin命令
1. bin/hdfs dfsadmin -setQuota 10 lisi
-clrQuota 清空
bin/hdfs dfsadmin -setSpaceQuota 4k /lisi/
-clrSpaceQuota 清空
查看bin/hdfs dfs -count -q -h /lisi
2 namenode 与datanode 的namespaceID
datanode与namenode的namespaceID应该是相同的,只有相同才能相互通信,每次格式化namenode会生产一个新的namespaceID,如果datanode没有同步,导致datanode与namenode的namespaceID不相同,则两者之间是不能相互通信情况。
在tmp/dfs/name/current/version 下可以查看到namespaceID等相关信息。
3.文件按块存储在datanode中,在Hadoop2中block块默认是128M,如果文件大小大于128M,则按128M分成多块存储在datanode中,余下不足128M的则按实际的大小存储。每一个block块在namenode中都占用一个内存单元,如果文件数据小,文件数量多,会增加对namenode的内存压力,所以不适合存储小文件,而适合存储大文件。
4.hdfs是一个分布式文件系统,其中namenode是整个分布式文件系统的管理节点,它维护整个文件系统的文件目录树,文件、目录的元数据信息和对应的数据块列表,并且接受用户的请求。
5.客户端client向namenode发送请求,namenode返回block块所在datanode地址给client,client通过地址找到相应的datanode的block块,与之相互通信。
6.1 fsimage 文件中存储一段时间里的元数据信息。
6.2 edits 文件中存储操作日志内容。
7.1 hdfs dfsadmin -safemode
7.2 hdfs dfsadmin -report
8.1 数据存储:staging
HDFS client上传数据到HDFS时,会首先在本地缓存数据,当数据达到一个block大小时,请求NameNode分配一个block。NameNode会把block所在的DataNode的地址告诉HDFS client。HDFS client会直接和DataNode通信,把数据写到DataNode节点一个block文件中。
HDFS联盟
多个namenode集群共享同一个datanode集群。不同namenode
/content/4721178.html(好博客地址)
http://blog.fens.me/category/hadoop-action/page/2/(hadoop
大数据算法 好博客)
1.在目录/usr/softinstall/hadoop/etc/hadoop,配置文件修改。
1.1 第一个:hadoop-env.sh
#在27行修改 export JAVA_HOME=/usr/softinstall/jdk |
<property> <name>fs.defaultFS</name> <value>hdfs://hadoop0:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/softinstall/hadoop/tmp</value> </property> <property> <name>fs.trash.interval</name> <value>1440</value> </property> |
<property> <name>dfs.replication</name> <value>1</value> </property> |
需要重命名: mv mapred-site.xml.template mapred-site.xml <!-- 通知框架MR使用YARN --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> |
<configuration> <!-- reducer取数据的方式是mapreduce_shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> |
hadoop/bin/ hdfs namenode -format |
2.2.1 先启动HDFS
hadoop/sbin/start-dfs.sh (sbin/hadoop-daemon.sh start namenode) |
hadoop/sbin/start-yarn.sh |
使用jps命令验证 [root@hadoop0 sbin]# jps 4302 Jps 4182 ResourceManager 3780 NameNode 4038 SecondaryNameNode 4268 NodeManager 3864 DataNode |
http://hadoop0:50070(HDFS管理界面) 在这个文件中添加linux主机名和IP的映射关系 C:\Windows\System32\drivers\etc\hosts 192.168.60.128 hadoop0 http://hadoop0:8088/(MR管理界面) |
java操作hdfs
1.1 新建一个maven项目
1.2 在http://mvnrepository.com/tags/maven 中找到三个jar包配置。把其加到pom.xml文件中。
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.1</version> </dependency> |
import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; public class Hdfs { public static void main(String[] args) throws Exception { //FileSystem fs= getFileSystem(); // readFile(); // mkdir(); // rmdir(); list() ; } private static FileSystem getFileSystem() throws URISyntaxException,IOException { Configuration conf = new Configuration(); URI uri = new URI("hdfs://hadoop0:9000"); final FileSystem fileSystem = FileSystem.get(uri , conf); return fileSystem; } private static void readFile() throws Exception { FileSystem fileSystem = getFileSystem(); FSDataInputStream openStream = fileSystem.open(new Path("hdfs://hadoop0:9000/aa/aa4")); IOUtils.copyBytes(openStream, System.out, 1024, false); IOUtils.closeStream(openStream); } /** * 创建目录,调用fileSystem的mkdirs(path) * @throws Exception */ private static void mkdir() throws Exception { FileSystem fileSystem = getFileSystem(); fileSystem.mkdirs(new Path("hdfs://hadoop0:9000/bbb")); } /** * 删除目录,调用fileSystem的deleteOnExit(path) * @throws Exception */ private static void rmdir() throws Exception { FileSystem fileSystem = getFileSystem(); fileSystem.delete(new Path("hdfs://hadoop0:9000/bbb")); } /** * 遍历目录,使用FileSystem的listStatus(path) * 如果要查看file状态,使用FileStatus对象 * @throws Exception */ private static void list() throws Exception{ FileSystem fileSystem = getFileSystem(); FileStatus[] listStatus = fileSystem.listStatus(new Path("hdfs://hadoop0:9000/")); for (FileStatus fileStatus : listStatus) { String isDir = fileStatus.isDir()?"目录":"文件"; String name = fileStatus.getPath().toString(); System.out.println(isDir+" "+name); } } } 一般情况下,对hdfs的操作是用shell命令,相对来说很少用到写Java代码的操作。 |
hadoop distcp hdfs://source hdfs://destination |
1.hadoop是什么?
hadoop是适合大数据存储和大数据计算的平台。
apache hadoop2.6.0
在hadoop2包括3个核心组成:HDFS2、Yarn、MapReduce。
在hadoop1中,包括2个核心组成:HDFS、MapReduce。
2.HDFS负责分布式存储。
3.MapReduce是负责批处理的。
4.伪分布安装
----------------------------------------------------
1.分布式文件系统是位于操作系统之上的一层文件管理系统。
2.HDFS中的数据存储,在用户看来,非常类似于linux的文件管理——树状的目录结。
3.hdfs中的文件内容是可以追加的.
4.启动HDFS进程的用户是超级用户,不受任何权限限制。
5.NameNode包含文件与数据的映射
为什么文件夹没有副本?
是否可以插入内容到HDFS文件的前面?
7.core-site.xml 中的配置是覆盖core-site.xml.default 中的配置属性的。
8.-rw-r--r-- 3 ipms ipms 10735016 2015-07-29 14:25 /rawdata/xdr/lte/lte_x2/20150729/14/20/210_2_X2AP_201507291415_00.CSV
其中3(-rw-r--r-- 3) 表示副本数。 文件夹是没有这个标示的,其用“-” 表示。
HDFS dfsadmin命令
1. bin/hdfs dfsadmin -setQuota 10 lisi
-clrQuota 清空
bin/hdfs dfsadmin -setSpaceQuota 4k /lisi/
-clrSpaceQuota 清空
查看bin/hdfs dfs -count -q -h /lisi
2 namenode 与datanode 的namespaceID
datanode与namenode的namespaceID应该是相同的,只有相同才能相互通信,每次格式化namenode会生产一个新的namespaceID,如果datanode没有同步,导致datanode与namenode的namespaceID不相同,则两者之间是不能相互通信情况。
在tmp/dfs/name/current/version 下可以查看到namespaceID等相关信息。
3.文件按块存储在datanode中,在Hadoop2中block块默认是128M,如果文件大小大于128M,则按128M分成多块存储在datanode中,余下不足128M的则按实际的大小存储。每一个block块在namenode中都占用一个内存单元,如果文件数据小,文件数量多,会增加对namenode的内存压力,所以不适合存储小文件,而适合存储大文件。
4.hdfs是一个分布式文件系统,其中namenode是整个分布式文件系统的管理节点,它维护整个文件系统的文件目录树,文件、目录的元数据信息和对应的数据块列表,并且接受用户的请求。
5.客户端client向namenode发送请求,namenode返回block块所在datanode地址给client,client通过地址找到相应的datanode的block块,与之相互通信。
6.1 fsimage 文件中存储一段时间里的元数据信息。
6.2 edits 文件中存储操作日志内容。
7.1 hdfs dfsadmin -safemode
7.2 hdfs dfsadmin -report
8.1 数据存储:staging
HDFS client上传数据到HDFS时,会首先在本地缓存数据,当数据达到一个block大小时,请求NameNode分配一个block。NameNode会把block所在的DataNode的地址告诉HDFS client。HDFS client会直接和DataNode通信,把数据写到DataNode节点一个block文件中。
HDFS联盟
多个namenode集群共享同一个datanode集群。不同namenode
/content/4721178.html(好博客地址)
http://blog.fens.me/category/hadoop-action/page/2/(hadoop
大数据算法 好博客)
相关文章推荐
- docker报错
- sqoops数据的导入导出
- ACM资源网站
- Linux系统目录结构
- Xcode真机测试could not find developer disk image解决方法(当SDK升级高版本而Xcode没升级的时候会出现这种情况)
- Android的架构与设计模式
- Centos 下Kafka集群的搭建
- Centos 下Storm集群的搭建及Java客户端环境
- 我的网站
- openssl安装
- Linux性能分析的前60000毫秒
- 【tomcat】Windows下部署多个tomcat容器的问题
- 修改Linux内核参数和用户资源参数
- Linux环境下安装部署AWStats日志分析系统
- 三层架构下实现用户登陆C#
- linux内核驱动01-helloworld
- CentOS 7 安装mysql
- 运维中被低估的日志
- php,apache伪静态(1转)
- OpenSessionInViewFilter 的配置及作用