安装步骤
机器mini_yum,mini2,mini3,mini4
注意:下面的步骤在4台机子上都要做的操作
1先将虚拟机的网络模式选为NAT
2修改主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=xxxx ###
3修改IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ###
HWADDR="xxxxxxx"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="xxxxxxx"
IPADDR="xxxx" ###
NETMASK="255.255.255.0" ###
GATEWAY="xxxx" ###
4 修改主机名和IP的映射关系
vim /etc/hosts
xxxx mini2
5关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
6修改sudo
su root
vim /etc/sudoers
给hadoop用户添加执行的权限
7免密
8重启Linux: reboot
9 安装JDK
10为每个机器创建hadoop用户,密码为hadoop
[root@mini-yum ~]# echo $JAVA_HOME
/usr/local/jdk1.7.0_45
[root@mini-yum ~]#
上面步骤在以前的内容都有介绍,我就不截图从新做一遍了。
重点(我下面都是用root用户操作,实际上应该使用hadoop)
安装hadoop2.6.4(已经编译过了,怎么编译看https://download.csdn.net/download/zhou920786312/10889695)
1上传hadoop的安装包到服务器上去/home/hadoop/
2解压
[root@mini-yum hadoop]# tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C apps/
3修改配置文件
cd /home/hadoop/apps/hadoop-2.6.4/etc/hadoop
3.1配置环境变量
hadoop-env.sh
[root@mini-yum hadoop]# vi hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.7.0_45
3.2运行时参数配置(在mini-yum 上操作)
core-site.xml
[root@mini-yum hadoop]# vi core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<!-- 使用的文件系统名称 -->
<name>fs.defaultFS</name>
<!-- 使用的协议是hdfs,地址是mini-yum:9000 -->
<value>hdfs://mini-yum:9000</value>
</property>
<!-- 指定hadoop集群(也就是dataNode)运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop-2.6.4/tmp</value>
</property>
hdfs-site.xml (可以配也可以不配,因为有默认配置)
<!-- 指定HDFS副本的数量,默认是3,也就是说存储在nodeDate的数据有3份副本 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
[root@mini-yum hadoop]# vi hdfs-site.xml
mapred-site.xml.template(mapreduce)
修改名称
[root@mini-yum hadoop]# mv mapred-site.xml.template mapred-site.xml
<!-- 指定mapreduce运行在yarn上,默认是local就是本地跑-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
[root@mini-yum hadoop]# vi mapred-site.xml
yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>mini-yum</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
[root@mini-yum hadoop]# vi yarn-site.xml
4 将mini-yum的apps分发到mini2,mini3,mini4
当前目录
[root@mini-yum hadoop]# pwd
/home/hadoop
[root@mini-yum hadoop]# ll
总用量 176584
drwxr-xr-x. 3 root root 4096 1月 2 07:21 apps
-rw-r--r--. 1 root root 180813065 12月 6 18:40 cenos-6.5-hadoop-2.6.4.tar.gz
分发命令
[root@mini-yum hadoop]# scp -r apps mini2:/home/hadoop
[root@mini-yum hadoop]# scp -r apps mini3:/home/hadoop
[root@mini-yum hadoop]# scp -r apps mini4:/home/hadoop
5配置hadoop环境变量
mini-yum配置
[root@mini-yum etc]# vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.7.0_45
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[root@mini-yum etc]# source /etc/profile
同时对mini2,mini3,mini4也这样配置
6 格式化namenode(是对namenode进行初始化,也就是mini-yum)
[root@mini-yum hadoop]# hdfs namenode -format
红色表示成功格式话,这个目录怎么来的?
来自core-site.xml配置的
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop-2.6.4/tmp</value>
</property>
这个目录有什么?
7 启动hadoop
启动namedate(mini-yum)
[root@mini-yum hadoop-2.6.4]# cd /home/hadoop/apps/hadoop-2.6.4/sbin
[root@mini-yum sbin]# hadoop-daemon.sh start namenode
验证
启动mini2的datanode
[root@mini2 hadoop]# cd /home/hadoop/apps/hadoop-2.6.4/sbin
[root@mini2 sbin]# hadoop-daemon.sh start datanode
starting datanode, logging to /home/hadoop/apps/hadoop-2.6.4/logs/hadoop-root-datanode-mini2.out
[root@mini2 sbin]# jps
5330 DataNode
5397 Jps
[root@mini2 sbin]#
验证
后面可以一个一个启动mini3,mini4
缺点:加上有1000个节点,手动启动非常麻烦,所以才有下面的内容
8自启动所有节点
启动前,关闭所有节点,这边就写2个列子,mini3,mini4就参照mini2
mini-yum:
[root@mini-yum sbin]# hadoop-daemon.sh stop namenode
stopping namenode
[root@mini-yum sbin]# jps
5561 Jps
mini2:
[root@mini2 sbin]# hadoop-daemon.sh stop datanode
stopping datanode
[root@mini2 sbin]# jps
5435 Jps
自启动所有节点配置
启动前我mini-yum对mini-yum,mini2,mini3,mini4做了免登陆
先到目录
[root@mini-yum hadoop-2.6.4]# cd /home/hadoop/apps/hadoop-2.6.4/etc/hadoop
[root@mini-yum hadoop]# vi slaves
启动所有节点
[root@mini-yum hadoop]# cd /home/hadoop/apps/hadoop-2.6.4/sbin
[root@mini-yum sbin]# start-dfs.sh
验证
9停止所有节点
因为前面8已经配置了slave,所有只要在mini-yum执行以下命令就可以了
[root@mini-yum sbin]# stop-dfs.sh
验证
最后发现一个很郁闷的问题,那就是我用root用户操作了
所以我最后修改了apps文件及所有子文件的权限,将他们都改为hadoop用户组
机器mini_yum,mini2,mini3,mini4都要改
[root@mini4 hadoop]# pwd
/home/hadoop
[root@mini4 hadoop]# chown hadoop.hadoop -R apps
[root@mini4 hadoop]# ll
总用量 44
drwxr-xr-x. 3 hadoop hadoop 4096 1月 2 10:23 apps
drwxr-xr-x. 12 hadoop hadoop 4096 12月 5 09:08 zookeeper
-rw-rw-r--. 1 hadoop hadoop 31049 12月 7 08:27 zookeeper.out