从CentOS安装到Hadoop2.4.0完全分布式配置
1. 前提
1. 安装VMware
2. 安装centos64
1. 网络配置
2. 正式安装
2. 配置Master
1. 连接网络
2. 修改主机名
3. 创建工作组和用户
4. 安装JDK和Hadoop
5. 配置hadoop
1.
3. 安装配置slave
1. 另外安装slave
2. 克隆
4. 设置SSH无密码登录
5. 启动Hadoop
需要提前下载的有:
1、JDK-1.8.0
2、hadoop-2.4.0
3、putty
以上资源,包括VMware、 CentOS镜像文件、相关配置文件都可以在我的网盘中下载到:禁用url了……http://p a n . b a i d u .com/s/1jGhxyXC
PS: 网盘中CentOS和JDK都只适合32位的,64位CentOS6.4自行找资源
64位JDK可以点官网:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
VMware安装比较简单,网盘中有安装文件,遇到什么问题请百度之,此处不再罗嗦
打开VMware->编辑->虚拟网络编辑器 如图配置
Hadoop完全分布式集群至少须要两台虚拟机,考虑到内存占用量大的问题,此处推荐以下配置
| 内存 | 安装模式 | IP地址 |
Master | 1G | Minimal Desktop | 192.168.224.100 |
Slave1 | 512M | Minimal | 192.168.224.71 |
IP地址可以随意配置,只要在同一网段内就行。
step1:打开VMware->文件-> 新建虚拟机 选 “自定义(高级)”->下一步
step2:选稍后安装操作系统->选择linux系统、版本CentOS->名称、位置随意->处理器核数根据自己情况选->内存选择
512M:只能安装命令行模式,32位2G内存可以同时运行3台虚拟机(也够呛了)
1G:可以安装多种带图形操作界面模式,32位2G内存可以同时运行2台虚拟机
随后一直点确认就对了
step3:在创建好的虚拟机上右键-》设置虚拟机,点CD/DVD载入CentOS6.4映像文件,运行虚拟机
step4:运行虚拟机
下面以1G安装为例(区别在于:安装界面稍有不同,512M需在安装完成后才能配置网络和主机名,1G在安装过程中可配置):
因为是虚拟机,所以安装过程中提示的“是否检查磁盘”“是否格式化”之类的全部都选最省时的选项吧。
到以下步骤时,点配置网络:地址如下图配置,DNS服务器地址按个人情况配置,
DNS服务器地址查看方法:
开始-》运行-》cmd-》输入命令 “ ipconfig -all ” 找到DNS地址填入下图
step 5 选择好安装模式,设置好用户名密码、根据提示完成安装。
step 6 以root身份登录CentOS
如果在安装过程中已经配置好IP地址等,则打开终端,ping www.baidu.com 看一下是否能ping通。
如果无法ping通,查看VMware相关的服务是否开启了。
查看方法:控制面板-》管理工具-》服务 找到以“VMware”开头的服务,未开启则全部右键开启
仍然无法ping通,则根据一下步骤重新配置一下:
step1: 打开终端,输入 vi /etc/sysconfig/network-scripts/ifcfg-eth0 (新手提示:按[tab]可以自动填充路径的,在终端输入命令时多按[tab]可以减少输入错误)
主要确认以下配置:(物理地址HDDR不要乱改)
[html] view plaincopy
1. DEVICE=eth0
2. ONBOOT=yes
3. BOOTPROTO=static
4. IPADDR=192.168.224.100 //ip地址
5. NETMASK=255.255.255.0 //子网掩码
6. GATEWAY=192.168.224.2 //网关
7. DNS1=192.168.10.8 //DNS地址
8. DNS2=192.168.11.8
step2: 输入: service network restart 重启网络服务
ping www.baidu.com 看一下能不能ping 通
vi /etc/sysconfig/network
[html] view plaincopy
1. NETWORKING=yes
2. HOSTNAME=master
vi /etc/hosts
替换成以下内容
[html] view plaincopy
1. 192.168.224.100 master
2. 192.168.224.71 slaver1
创建用户组:hadoop,然后在此用户组下创建hadoop用户。
[root@ master ~]# groupadd hadoop
[root@ master ~]# useradd -g hadoop -d /home/hadoop hadoop
“hadoop”是所创建的用户名, -d指明“ hadoop”用户的home目录是/home/hadoop)
[root@ master ~]# passwd hadoop [给用户hadoop设置口令]
1). 在真实集群分布模式下,要求集群中所有节点使用相同的用户名,这是hadoop的基本要求。比如,可以使用“hadoop”作为所有节点上统一的用户名。
2). 并且要求在所有节点上安装的hadoop系统具有完全一致的目录结构。
step1:解压putty
step2:运行cmd,把JDK和Hadoop安装文件传送到虚拟机中
具体操作:cd 到putty安装目录下,比如说我的安装路径为 G:\putty,则
[html] view plaincopy
1. C:\user\test>g:
2. C:\user\test>cd putty
3. C:\user\test>pscp [jdk所在位置] hadoop@192.168.224.100:/home/hadoop/
4. C:\user\test>pscp [hadoop所在位置] hadoop@192.168.224.100:/home/hadoop/
step3:在root身份下安装JDK
cd /home/hadoop/
rpm -ivh jdk-8u5-linux-i586.rpm
JDK默认安装在/usr/java/目录下
step4:配置环境变量(此处顺便把HADOOP一起配置了,虽然它还没安装)
vi /etc/profile
在最后面添加以下内容
[html] view plaincopy
1. export JAVA_HOME=/usr/java/jdk1.8.0_05
2. export JRE_HOME=/usr/java/jdk1.8.0_05/jre
3. export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
4. export HADOOP_HOME=/home/hadoop/hadoop-2.4.0/
5. export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile 使配置生效
在terminal中输入
java -version 看一下是否配置成功,如果配置成功会显示JAVA的版本号等信息。
step5:安装hadoop
su hadoop //用hadoop身份登录
cd ~
tar -zxvf hadoop-2.4.0.gzip.tar ~/ //把hadoop解压到/home/hadoop/目录下
cd ~/hadoop-2.4.0/etc/hadoop/ 修改以下文件内容:
hadoop-env.sh
[html] view plaincopy
1. #export JAVA_HOME=${JAVA_HOME}
2. export JAVA_HOME=/usr/java/jdk1.8.0_05/
core-site.xml
[html] view plaincopy
1. <?xml version="1.0" encoding="UTF-8"?>
2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3. <configuration>
4. <property>
5. <name>fs.defaultFS</name>
6. <value>hdfs://192.168.224.100:9000/</value>
7. </property>
8. </configuration>
hdfs-site.xml
[html] view plaincopy
1. <?xml version="1.0" encoding="UTF-8"?>
2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3. <configuration>
4. <property>
5. <name>dfs.namenode.name.dir</name>
6. <value>/home/hadoop/hadoop-2.4.0/hdfs/name</value>
7. </property>
8. <property>
9. <name>dfs.datanode.data.dir</name>
10. <value>/home/hadoop/hadoop-2.4.0/hdfs/data</value>
11. </property>
12. </configuration>
yarn-site.xml
[html] view plaincopy
1. <?xml version="1.0"?>
2. <configuration>
3. <property>
4. <name>yarn.nodemanager.log-dirs</name>
5. <value>/home/hadoop/hadoop-2.4.0/yarn/log</value>
6. </property>
7. </configuration>
slaves
[html] view plaincopy
1. master
2. slave1
如果你比较懒,也可以下载上文提供的网盘中的文件,把它们发送到虚拟机中。方法参考2.4中的step2,
如果要传送整个目录
lcd win中的目录
psftp -r 目录名 新目录名
关于psftp更多相关命令:http://blog.csdn.net/greenzb/article/details/4216128
有两种方法:1.克隆master,修改配置变成slave 2.另外安装一台slave
克隆出来的slave配置与master一模一样,如果想要低配一点的slave,则要另外安装。
为什么要另外安装这么麻烦?因为楼主的32位2G渣机开两台1G虚拟机时,想开个word写技术文档都得卡得想死啊…(内存都达98%了 T^T显卡过热蓝屏是家常便饭。)
安装步骤与上面基本一致,配置时可以偷偷懒从master机里用scp命令 直接把hadoop文件夹等 复制过去(复制过去后注意文件拥有者是否与master中的一致)
在VMware中有克隆虚拟机的功能,选中要克隆的虚拟机master, 完整克隆一台slave1,完成后启动slave1
step1 修改主机名:
vi /etc/sysconfig/network
[html] view plaincopy
1. NETWORKING=yes
2. HOSTNAME=master
step2 修改网络配置:
执行:vim /etc/udev/rules.d/70-persistent-net.rules
把eth1改成eth0, 记下ATTR{address}
执行:vi /etc/sysconfig/networking/devices/ifcfg-eth0
修改:IPADDR=192.168.224.71
修改:HWADDR= 上面记下的ATTR{address}(或者在虚拟机设置中选中“网络适配器”-》“高级” 得到MAC地址)
执行: reboot 重启
重启后ping www.baidu.com 看一下是否能ping通,ping 不通说明网络没配置好
ping不通时: vim /etc/udev/rules.d/70-persistent-net.rules 看一下什么情况,如果多一行eth1 即eth0 eth1都有的情况,把eth0那行删了,eth1改成eth0,再修改ifcfg-eth0把物理地址改成与上面配置中的eth0一致
step1:打开两台虚拟机,登录到master中,执行如下命令:
ssh
如果提示Bash : ssh command not found
则
yum install openssh-clients
安装openssh安装完成后换成hadoop身份登录执行如下命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/id_dsa.pub slave1:~/.ssh/authorized_keys
中间可能需要输入密码 ,按提示输入即可。
然后记得修改文件权限
修改 authorized_keys 权限为600
chmod 600 /home/hadoop/.ssh/authorized_keys
现在分别执行如下命令
ssh localhost
ssh slave1
不需要再输入密码就对了。如果仍然不成功:tail /var/log/secure -n 20 查看登录日志
执行HDFS格式化命令:
hadoop namenode -format
在master虚拟机中
sh /hadoop/hadoop-2.4.0/sbin/start-all.sh
jps 查看进程
应该有如下进程
ok,搞定!