集群安装
1、从网上下载http://archive.apache.org/dist
hadoop是基于java编写的,但是里面有环境是使用到c,native有与平台打交道的;
2、需要编辑hadoop
课件中的是编译好的,centOS6.7-hadoop-2.6.4.tar,编译见编译文档;
3、准备安装环境,主要是jdk;
4、目录详解
sbin目录很重要,里面都是启动命令;
5、集群的规划
------------------------------------------
mini1 NameNode SecondaryNameNode
mini2 ResourceManager
mini3 DataNode NodeManager
mini4 DataNode NodeManager
mini5 DataNode NodeManager
------------------------------------------
mini1 dn nm nn snn rm
mini2 dn nm
mini3 dn nm
6、配置修改(所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)
3.1 配置hadoop
第一个:hadoop-env.sh
vim hadoop-env.sh
#第27行
export JAVA_HOME=/home/hadoop/apps/jdk1.7.0_79
第二个:core-site.xml 配置在configuration节点下
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mini1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop-2.6.4/tmp</value>
</property>
第三个:hdfs-site.xml 并且配置 SecondaryNameNode
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>mini1:50090</value>
</property>
第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五个:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>mini1</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3.2 将hadoop添加到环境变量
vim /etc/proflie
export JAVA_HOME=/home/hadoop/apps/jdk1.7.0_80
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
3.3 分发到另外两台机器
scp -r hadoop-2.6.4 root@mini2:/home/hadoop/apps
scp -r hadoop-2.6.4 root@mini3:/home/hadoop/apps
3.4 格式化namenode(是对namenode进行初始化),下面两个命令都可以,在namenode 上执行
hdfs namenode -format
hadoop namenode -format (推荐)
3.5 启动hadoop
第一个启动方式比较挫----------------------
1)启动老大namenode 仅仅在node-01上执行
hadoop-daemon.sh start namenode
2)启动datanode 分别在node-01 02 03上面执行
hadoop-daemon.sh start datanode
3)启动SecondaryNameNode
hadoop-daemon.sh start secondarynamenode
第二笔记原来的启动方式,一次全部启动了,推荐-----------------------
slaves文件是只对namenode节点有作用,是帮助namenode节点识别datanode节点位置的一个文件。
需要配置hadoop目录(home/hadoop/apps/hadoop-2.6.4/etc/hadoop)下的:slaves文件,文件中配置如下:
mini1
mini2
mini3
------------
先启动HDFS 在namenode的节点上执行,这里是mini1
sbin/start-dfs.sh
再启动YARN 在resourcemanager节点上执行,如果是五台机配置,则为mini2
sbin/start-yarn.sh
3.6 验证是否启动成功
使用jps命令验证
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
http://192.168.19.101:50070 (HDFS管理界面)
http://192.168.10.101:8088 (RM管理界面)
7 常用命令
1)、查看集群状态
命令: hdfs dfsadmin –report
2)查看文件
hadoop fs –ls /
3)、上传文件
命令: hadoop fs -put ./ scala-2.10.6.tgz to /
4)从HDFS下载文件
命令: hadoop fs -get /yarn-site.xml
5)slaves 文件 注意:需要在namenode和resourcemanager节点上都配置slaves
一般在集群中你唯一地选择一台机器作为 NameNode ,一台机器作为 ResourceManager,这是master (主)。
那么 ,集群中剩下的机器作为DataNode 和 NodeManager。这些是slaves (从)。
在你的 hadoop目录/etc/hadoop/slaves 文件上列出全部slave机器名或IP地址,一个一行。
6)格式化namenode的提示
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.