hadoop单机安装与测试
1•Local (Standalone) Mode(单节点的本地模式)Linux的文件系统就是hadoop的存储系统
运行在单个的jvm环境,它使用linux的文件系统,适用于开发、测试、调试环境
运行案例
2•Pseudo-Distributed Mode(伪分布式模式,其实也是在一台机器上)
做自己搭一下(最后)
熟悉hdfs shell
hdfs dfs -help
3•Fully-Distributed Mode(分布在多个节点上,每个节点上都在运行)
设置hadoop的运行环境 env是运行环境 hadoop-env.sh叫做hadoop的运行环境,修改里面的Javahome
到此单机版安装完毕。
hdfs具有高可靠性,会自动保留设定的副本数,一旦副本丢失,namenode会定时复制副本(也就是备份)。
而且还有快报告机制,每个一小时报告一次,一旦没有报告的datanode就认为是挂了,检测如果少了某块副本,则
namenode就会告诉其他的某个块将块4给其他某个集群复制一份
还有一个心跳机制,每个三分钟报告一次,说明还活着,活着的datanode,则namenode就可以给其分任务
元数据是数据的描述信息
元数据是保存到内存中的
有多个支架,支架里面多个节点,节点里面多个副本块,块的副本之间是有顺序的。
---------------------------------
hadoop的全分布式的官网
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html
hdfs集群的配置与测试
hadoop集群安装
1、jdk
2、ssh免密
hadoop0001--->hadoop0001,hadoop0002,hadoop0003
3、静态IP
4、hostname
5、hosts
6、防火墙关闭
7、使用root用户(企业级的集群,使用普通用户hadoop)
scp /etc/profile hadoop@slave1:/etc/profile
安装步骤:
1、解压并配置环境变量 tar -zxvf had -C /usr/local
2、配置hadoop的运行环境
hadoop-env.sh
1 hadoop的核心配置文件
vi $HADOOP_HOME/etc/hadoop/core-site.xml
<!--指定hadoop所使用的文件系统schema(uri),hdfs的老大的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop0001:9000</value>
</property>
<!--指定buffer的大小-->
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--指定hadoop运行时产生的文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
<description>A base for other temporary directories.</description>
</property>
3、2 配置hdfs的设置
vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<!--指定namenode的元数据的存放路径-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoopdata/dfs/name</value>
</property>
<!--指定datanode的数据的存放路径-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoopdata/dfs/data</value>
</property>
<!--指定namenode的web ui的监控端口-->
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
</property>
<!--指定secondary namenode的web ui的监控端口-->
<property>
<name>dfs.secondary.http.address</name>
<value>slave1:50090</value>
</property>
<!--指定副本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--指定块的大小-->
<property>
<name>dfs.blocksize</name>
<value>128m</value>
</property>
<!--指定web端 rest api是否开启操作hdfs的权限-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!--是否开启文件系统权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<!--文件系统的检测目录-->
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///usr/local/hadoopdata/checkpoint/cname</value>
<description>Determines where on the local filesystem the DFS secondary
name node should store the temporary images to merge.
If this is a comma-delimited list of directories then the image is
replicated in all of the directories for redundancy.
</description>
</property>
<!--edits的检测目录-->
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>file:///usr/local/hadoopdata/checkpoint/cname</value>
<description>Determines where on the local filesystem the DFS secondary
name node should store the temporary edits to merge.
If this is a comma-delimited list of directories then the edits is
replicated in all of the directories for redundancy.
Default value is same as dfs.namenode.checkpoint.dir
</description>
</property>
3、3配置小弟文件
vi $HADOOP_HOME/etc/hadoop/slaves
hadoop0001
hadoop0002
hadoop0003
4、分发安装包
scp -r
5、初始化 格式化namenode
name.dir的路径不能手动创建
hdfs namenode -format
hadoop namenode -format
6、启动
单节点:
hadoop-daemon.sh start namenode
批量启动:
start-dfs.sh