Hadoop入门之集群搭建
Hadoop集群的搭建主要分为两个部分,一个是HDFS集群(主要负责文件的存储),这里需要用到NameNode和DataNode两个部分,还有一个是Yarn(主要负责任务调度,即后面需要跑的Mapreduce),这里也是两个ResourceManager和NodeManager.下面是搭建的大致流程:
(如果Shell脚本写的好,可以写个Shell脚本一次性部署一下)
1.修改主机名和IP的映射关系 :如我使用 192.168.1.101, 192.168.1.102 192.168.1.103 192.168.1.104 这四台机器搭建
vim /etc/hosts
192.168.1.101 hadoop01
192.168.1.102 hadoop02
192.168.1.103 hadoop03
192.168.1.104 hadoop04
2 关闭防火墙(让机器之间可以相互RPC通信)
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
3.给Hadoop集群在机器上创建一个执行用户
useradd hadoop
password hadoop --> 这里密码我也简单设置成hadoop了
4. 给Hadoop用户配置sudo权限
vim /etc/sudoers
末尾添加:
hadoop ALL=(ALL) NOPASSWD: ALL
以后 都尽量使用hadoop用户操作
5. 安装JDK 配置/etc/proflie 中的JAVA_HOME 和PATH (网上很多,这里不详细讲了)
6.上传Hadoop编译后的安装包到一台机器上,这里有一个centos6的: 链接:http://pan.baidu.com/s/1geUcZEr 密码:ksrg
解压后配置下HADOOP_HOME
vim /etc/proflie
export HADOOP_HOME=/xxxxx/hadoop-xxxxx
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
7.修改Hadoop的几个配置文件 :
注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
第一个:hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=你的JAVA_HOME的真实路径
第二个:core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
</property>
第三个:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>192.168.1.101:50090</value>
</property>
第四个:mapred-site.xml (mv mapred-site.xml.template 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>hadoop01</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
8.将修改后的Hadoop文件包通过SCP的方式发送到剩余要部署的机器上:
scp local_file [email protected]_ip:remote_folder
9.修改主节点(NameNode)上 $HADOOP_HOME/etc/hadoop/slaves
将其余机器加上:
hadoop02
hadoop03
hadoop04
10.初始化Hadoop目录生成原始标识:
hdfs namenode -format (hadoop namenode -format)
11. 配置ssh免登陆
#生成ssh免登陆**
#进入到我的home目录
cd ~/.ssh
ssh-****** -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id localhost
---------------------------
ssh免登陆:
生成key:
ssh-******
复制从A复制到B上:
ssh-copy-id B
验证:
ssh localhost/exit,ps -e|grep ssh
ssh A #在B中执行
11.启动Hadoop集群
先启动HDFS
sbin/start-dfs.sh
再启动YARN
sbin/start-yarn.sh
12 .验证是否启动成功
使用jps命令验证
27408 NameNode
28218 Jps
27643 SecondaryNameNode
27803 ResourceManager
http://192.168.1.101:50070 (HDFS管理界面)
http://192.168.1.101:8088 (MR管理界面)
最后上两张界面图吧:
最后祝大家都能成功!