hadoop的伪分布及节点介绍
1.hadoop的伪分布安装
1.1 设置ip地址
执行命令 service network restart
验证: ifconfig
1.2 关闭防火墙
执行命令 service iptables stop
验证: service iptables status
1.3 关闭防火墙的自动运行
执行命令 chkconfig iptables off
验证: chkconfig --list | grep iptables
1.4 设置主机名
执行命令 (1)hostname chaoren
(2)vi /etc/sysconfig/network
1.5 ip与hostname绑定
执行命令 vi /etc/hosts
验证: ping chaoren
1.6 设置ssh免密码登陆
执行命令 (1)ssh-keygen -t rsa
(2)cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
验证: ssh chaoren
1.7 安装jdk
执行命令 (1)cd /usr/local
(2)chmod u+x jdk-6u24-linux-i586.bin
(3)./jdk-6u24-linux-i586.bin
(4)mv jdk-1.6.0_24 jdk
(5)vi /etc/profile 增加内容如下:
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
(6)source /etc/profile
验证: java -version
1.8 安装hadoop
执行命令 (1)tar -zxvf hadoop-1.1.2.tar.gz
(2)mv hadoop-1.1.2 hadoop
(3)vi /etc/profile 增加内容如下:
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
(4)source /etc/profile
(5)修改conf目录下的配置文件hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml
(6)hadoop namenode -format
(7)start-all.sh
验证: (1)执行命令jps 如果看到5个新的java进程,分别是NameNode、SecondaryNameNode、DataNode、JobTracker、TaskTracker
(2)在浏览器查看,http://chaoren:50070 http://chaoren:50030
1.9 启动时没有NameNode的可能原因:
(1)没有格式化
(2)环境变量设置错误
(3)ip与hostname绑定失败
-------------------------------------------------------------
hdfs-site.xml中设置了有关hdfs的配置信息:
dfs.tmp.dir设置为/usr/local/hadoop/tmp,在tmp目录下有dfs和mapred,
name:在dfs中的name文件夹中对应的是Namenode的信息,Namenode负责接收用户的操作请求,维护目录结构,管理文件和目录的元数据信息,以及文件与block块的对应信息,该目录下有current,image,in_use.lock,previous.checkpoint,.lock文件表示进程已经被启用,当有另外一个namenode启动时,会报错。current目录下包含了edits,fsimage,fstime,VERSION,其中fsimage是镜像文件,edits表示正在处理的文件信息,fsimage与edits在secondnamenode(将edits合并到fsimage)上独立合并后经过http推送到namenode,比如上传一部电影,edits(transaction file)会发通知说“开始上传,上传100m,...上传200m....上传结束”,当没有出现上传结束时,不会进行合并。出现上传合并通知后,secondnamenode会从namenode上拷贝fsimage与edits进行合并和推送。为了保证ha(high availablity)高可靠,可以对fsimage进行备份,操作为:在site.xml中设置其地址为逗号分隔的多个目录列表,中间不能有空格。
data:对应的是Datanode的信息,也有一个current目录,其中存储了block块,每一个blk块都有相应的meta校验文件,以数据块实际大小为单位存储,并非64M,即如果块不足64m(67108864),则不会占用64m的空间,HDFS的datanode在存储数据时,如果原始文件大小>64MB,按照64MB大小切分;如果<64MB,只有一个block,占用磁盘空间是源文件实际大小。