Hadoop 2.5.0-cdh5.3.6 部署
* Local Mode
* Distributed Mode
* 伪分布式
一台机器,运行所有的守护进程,
从节点DataNode、NodeManager
* 完全分布式
有多个从节点
DataNodes
NodeManagers
配置文件
$HADOOP_HOME/etc/hadoop/slaves
================================================================
三台机器
192.168.159.111 192.168.159.112 192.168.159.113
bigdata01 bigdata02 bigdata03
1.5G 1G 1G
1 CPU 1CPU 1 CPU
配置映射
/etc/hosts
192.168.159.111 bigdata01 bigdata01
192.168.159.112 bigdata02 bigdata02
192.168.159.113 bigdata03 bigdata03
=====================================================================
bigdata01 bigdata02 bigdata03
HDFS
NameNode
DataNode DataNode DataNode
SecondaryNameNode
YARN
ResourceManager
NodeManager NodeManager NodeManager
MapReduce
JobHistoryServer
配置
* hdfs
*hadoop-env.sh
*core-site.xml
*hdfs-site.xml
*slaves
* yarn
*yarn-env.sh
*yarn-site.xml
*slaves
* mapredue
*mapred-env.sh
*mapred-site.xml
准备工作:
1. 准备三台虚拟机,命名为bigdata01(NameNode,DataNode,NodeManager,JobHistoryServer),bigdata02(DataNode,ResourceManager,NodeManager),bigdata03(DataNode,SecondaryNameNode,NodeManager)
2. 安装系统并配置(bigdata01)
修改主机名
vim /etc/sysconfig/network
Vim /etc/hosts
vim /etc/udev/rules.d/70-persistent-net.rules
vim /etc/sysconfig/network-scripts/ifcfg-eth0
配置完成重启
对bigdata01进行克隆,分别为bigdata02,bigdata03,两台虚拟机也进行如上操作。
利用CRT连接虚拟机bigdata01,bigdata02,bigdata03
3. 免密码登录配置
bigdata01:
ssh-keygen -tras 连续三个回车,生成2个文件: id_rsa和 id_rsa.pub(在/root/.ssh)
ssh-copy-idlocalhost
作用:就是把id_rsa.pub中的内容拷贝到authorized_keys
使用 catid_rsa.pub >> authorized_keys 可以代替ssh-copy-id localhost这个命令
对于三台机器,可以把每个节点上的ssh公共密钥的内容放到一个权限文件中即可。
在bigdata01中配置完authorized_keys中的所有节点公钥内容之后,分别拷贝到其他的节点,命令如下:
在bigdata01节点上:
scp/root/.ssh/authorized_keys bigdata02:/root/.ssh/
scp/root/.ssh/authorized_keys bigdata03:/root/.ssh/
bigdata02重复以上操作
4. 环境配置
hadoop-env.sh
core-site.xml
hdfs-site.xml
Slaves
yarn-env.sh
yarn-site.xml
mapred-env.sh
mapred-site.xml
在bigdata01上配置完hadoop之后,需要把hadoop的安装目录远程拷贝到其他节点:
scp -R hadoop-2.5.0-cdh5.3.6/ root@bigdata02:/opt/app
scp -R hadoop-2.5.0-cdh5.3.6/ root@bigdata03/opt/app
5. 集群时间同步
找一台机器
时间服务器
所有的机器与这台机器时间进行定时的同步
比如,每日十分钟,同步一次时间
# rpm -qa|grep ntp
# vi /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0stratum 10
# vi /etc/sysconfig/ntpd
# Drop root to id'ntp:ntp' by default.
SYNC_HWCLOCK=yes
OPTIOnS="-untp:ntp -p /var/run/ntpd.pid -g"
[root@bigdata01 hadoop-2.5.0-cdh5.3.6]# service ntpd status
ntpd is stopped
[root@bigdata01 hadoop-2.5.0-cdh5.3.6]# service ntpdstart
Starting ntpd: [ OK ]
[root@bigdata01 hadoop-2.5.0-cdh5.3.6]# chkconfig ntpdon
[root@bigdata03 hadoop-2.5.0-cdh5.3.6]# crontab -e
0-59/10 * * * * /usr/sbin/ntpdate bigdata01
[root@bigdata04 hadoop-2.5.0-cdh5.3.6]# crontab -e
0-59/10 * * * * /usr/sbin/ntpdate bigdata01
6.格式化namenode
hdfs namenode -format
7启动hadoop
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
http://192.168.159.111:50070 (HDFS管理界面)