整体环境
三台虚拟机,初始状态,每台5G硬盘,1G内存,后来根据运行情况增加了内存设置。
我的笔记本是2012年购买的,10G内存,普通硬盘,大家看自己计算机情况,可能会更快或更慢。
n1 192.168.8.10 设置2048MB内存
d1 192.168.8.20 设置1552MB内存
d2 192.168.8.30 设置1552MB内存
虚拟机环境
采用VMware workstation.
虚拟机的坑
32位VM workstation安装64位系统。
请:
- 确认自己的CPU是否支持vt (我的i5 3210m是支持的,可以使用securable软件检测下自己的CPU)
- 验证 BIOS/固件设置 VT 启用和禁用 'trusted execution.'
3)如果更改了这些 BIOS/固件设置 重新启动主机电源。
4)重新安装 VMware Workstation,重新启动主机.
可能需要更新到最新版本的 BIOS/固件。
** 安装vmware-tool **
yum -y install open-vm-tools
之后reboot就可以了
CentOS 64安装
选择minimal版本的iso安装
安装完成后先克隆一份备用,别问为什么,就像玩游戏一样,没事存个盘,以备万一。
配置CentOS
- 启动网络
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0 - 设置主机名
设置主机名为n1
hostname n1 #设置主机名为n1
vi /etc/hostname #编辑配置文件n1 #修改localhost.localdomain为n1, 去掉注释,否则有可能出问题
:wq! #保存退出
编辑hosts文件
vi /etc/hosts #编辑配置文件
127.0.0.1 localhost # 注意该行解析不能有n1, 会与下面的解析冲突,造成datanode无法回传数据
192.168.8.10 n1
192.168.8.20 d1
192.168.8.30 d2
:wq! #保存退出
shutdown -r now #重启系统
- 新建grid用户
useradd grid
passwd grid
连接虚拟机
- 安装SecureCRT等ssh客户端,这次我用的MobaXterm,功能不错,同时具有sftp功能
- xterm软件中配置用户名,配置私钥文件
- 免密码输入连接到虚拟机
安装基本工具及环境
- yum 安装wget net-tools
-- yum install wget net-tools - 修改yum安装源
- 查找最快源
yum clean all
yum makecache
- wget 下载jdk (注意no cookies参数)下载速度较慢
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz" - 安装jdk
解压
tar -xzvf jdk-8u131-linux-x64.tar.gz
移动到usr目录
mv ./jdk1.8.0_131 /usr
修改本用户的环境变量
vi ~/.bash_profile
export JAVA_HOME=/usr/jdk1.8.0_131
export JRE_HOME=/usr/jdk1.8.0_131/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
复制多台虚机
复制多台虚机,改hostname,改ip
虚机间ssh免密码设置
生成key对,并将所有公钥拷贝到同一台机器上
ssh-keygen -t rsa
scp ./id_rsa.pub grid@192.168.8.10:/home/grid/.ssh/authorized_keys
cat ./id_rsa.pub >>/home/grid/.ssh/authorized_keys
拷贝到所有机器上
scp authorized_keys grid@192.168.8.20:/home/grid/.ssh/authorized_keys
scp authorized_keys grid@192.168.8.30:/home/grid/.ssh/authorized_keys
设置权限(ssh不能免密连接的时候设置)
chown username: /home/username/.ssh
chown username: /home/username/.ssh/*
chmod 700 /home/username/.ssh
chmod 600 /home/username/.ssh/*
设置Xterm访问虚机的ssh免密码登录
- 首先用tools->mobakeygen 生成rsa key对
2)分别保存公钥和私钥
3)复制公钥,并粘贴到centos配置中
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
sudo vim ~/.ssh/authorized_keys
配置hosts文件,解析ip地址和主机名
su
vi /etc/hosts
增加以下内容:
192.168.8.10 n1
192.168.8.20 d1
192.168.8.30 d2
修改Hadoop 2.7配置文件
复制分发hadoop
scp -r hadoop-2.7.3 grid@d1:/home/grid
scp -r hadoop-2.7.3 grid@d2:/home/grid
同时把java的环境变量设置分发出去
scp .bash_profile grid@d1:/home/grid
scp .bash_profile grid@d2:/home/grid
格式化namenode
hadoop-2.7.3/bin/hdfs namenode -format
启动hadoop
./sbin/start-dfs.sh
/.sbin/start-yarn.sh
验证安装是否成功
- jsp检查进程
n1上运行的应该有:namenode, secondarynamenode, resourcemanager
d1,d2上运行的应该有:datanode, nodemanager - 查看集群状态:./bin/hdfs dfsadmin –report
- 查看文件块组成: ./bin/hdfsfsck / -files -blocks
- 查看HDFS: http://192.168.8.10:50070
- 查看RM: http://192.168.8.10:8088
运行示例
运行hadoop内置的wordcount示例,如果能正确产生结果,则安装正常