VMWare-workstation-full-12.0.0-2985596.exe(Windows上运行虚拟机);
CentOS-6.5-x86_64-minimal.iso(Linux 操作系统);
Xshell_5.0.exe(链接Windows与Linux ,在Xshell上进行虚拟机操作);
Xftp_4.0.0118.1414638732.exe(内网传输,在Windows与Linux之间传输文件);
jdk-7u67-linux-x64.rpm(Linux版,JAVA开发工具);
Hadoop-2.6.5.tar.gz;
新建虚拟机->自定义安装->稍后安装操作系统->选择安装Linux操作系统->虚拟机名称可改,位置尽量不放C盘,文件路径不要有空格和中文->选择使用网络地址转换(NET)->最大磁盘大小(GB)可以大于实际内存,输个200左右;选择将虚拟磁盘拆分成多个文件。
设置完成后回到VMware工作台,这时系统框架搭好,开始导入操作系统:在VMware工作台选择搭好的那台虚拟机,右键选择设置,在硬件栏中找到CD/DVD(IDE),单击进入,如图:
在连接栏中选择使用ISO映像件,点击浏览,将下载好的Linux操作系统ISO文件导入。
开启虚拟机
选择Install or upgrade an existing system
Disc Found栏中选择Skip(跳过)
语言全部选择English
储存类型选择Basic Storage Devices
在Storage Devices Warning栏中选择Yes(如果弹出的话)
Hostname自己取一个,不要有空格和中文
时区(Selected City)选择Shanghai,Asia
Root Password(最高权限用户密码)自己输入
Which type of installation would you like选项卡中选择Create Custom Layout(创建分区,Linux下有三个必须的分区:启动系统用的分区;系统内核用的分区;用户应用的分区)
在Hard Drives中选择Create,在Create Storage选项卡中选择Standard Partition(标准分区)
在Add Partition选项卡中如下图:
完成后点击next,如果出现Format Warning选项卡,点击Format>>出现Writing storage configuration to disk选项卡(更改储存配置),选择Write change to disk>>一直默认到最后,点击Reboot配置完成。
在VMware工作台中的编辑选项卡下点击虚拟网络编辑器
在虚拟网络编辑器选项卡下查看子网IP(注意这里的IP是虚拟机使用的IP)
在Windows桌面下键入WIN+R,在弹出窗口输入cmd,回车进入DOS命令,敲下ipconfig,查看当前连上外网的适配器的IPv4 地址,并记住。(注意:看的是连上外网的适配器下的IP)
开启虚拟机
登录界面首先输入用户名,这里默认是root,密码是刚才设置的(这里出于保护,不显示你输入的密码,输完Enter就行)
出现[root@xxx ~]# 说明登录成功。(注意Ctrl+Alt鼠标键盘跳出虚拟机)
接下来使用Linux命令,输入vi /etc/sysconfig/network- scripts/ifcfg-eth0
;进入下图(小技巧:名字输入一半按Tab自动补全):
说明:Linux下输入i编辑文档,按Esc退出编辑,再输入:wq保存,输入:!q强制退出。
编辑完成后,按Esc,再:wq 保存(注意有冒号)。
退出后键入命令service network restart
(更新配置),出来全是OK才行。
最后输入ping www.baidu.com
看是否成功,如果不停出现ms(导包时间单位)字样,说明成功,按Crtl+C退出。
之后输入rm -fr /etc/udev/rules.d/70-persistent-net.rules
(这行命令是强制删除etc/udev/rules.d目录下的70-persistent-net.rules文件,不删除的话配置的IP、网关和子网掩码等信息就不能生效)。
IP配置完成。
在虚拟机中键入命令service iptables stop
,完成后再键入命令chkconfig iptables off
,.完成后键入vi /etc/selinux/config
进入界面按i 编辑内容,改为SELINUX=disabled;按Esc退出编辑,:wq 保存(冒号别忘了),最后关机。
纯净的Linux系统装完了。
在虚拟机工作台最上面一排找一个小图标,名字叫管理此虚拟机的快照,点击它出现下图:
点击拍摄快照,然后确认。
继续打开快照,选中快照,点击克隆>>选择现有快照>>选择创建链接克隆>>位置和名称自己取,这里取node1(主机名node1等会要用)>>点击完成。
给node1配置IP:vi /etc/sysconfig/network-scripts/ifcfh-eth0
(小技巧:名字输入一半按Tab自动补全)
按i 编辑内容,
这里要改的只有一项IPADDR;四位中的最后一位在3到255间选,这里我选31(192.168.1.31 IP待会要用);
Esc然后:wq保存退出;
输入service network restar
t 出来全是ok才行,ping www,baidu.com
看是否成功。
配置主机名:vi /etc/sysconfig/network
HOSTNAME=node1
Windows的hosts配置:
路径是C:/windows/system32/drivers/etc/hosts ,右键以记事本打开,在最后一行回车,然后输入192.168.1.31 node1(注意左边是虚拟机的IP,右边是虚拟机主机名)
要权限的话有两个办法:1.把hosts 文件拖到桌面,编辑后放回去;2.下载notepad++,用它编辑。
192.168.1.32 node2
192.168.1.33 node3
192.168.1.34 node4
配置每台虚拟机中的hosts: vi /etc/hosts
按i 编辑内容;
在最后一行回车,然后输入
192.168.1.31 node1
192.168.1.32 node2
192.168.1.33 node3
192.168.1.34 node4
参考下图(四台虚拟机的IP和主机名):
注意复制命令时,由于Linux下的输入可能与文档的输入字符串不同,会出错;可以自己敲入。
文件路径和主机名不要有空格中文。
创建虚拟机问题
Windows主机下BIOS设置为禁用虚拟机,导致无法使用虚拟机。
Windows开机按DEL,进入BIOS;BIOS中依次选择:Advanced(高级)——CPU Configuration——Secure Virtual Machine,设置为:Enabled(启用)就行了。
句柄无效
方法1:进入虚拟机目录,找到.vmx结尾的文件,以记事本方式打开,找到 vmci0.present=“TRUE” 一行,将true改为false并保存。
方法2:重装虚拟机。
执行service network restart时的问题
可能原因1:前面的/etc/sysconfig/network-scripts/ifcfh-eth0没有可能配对。
vi /etc/sysconfig/network-scripts/ifcfh-eth0
进入,看是否DEVICE=eth0 。
可能原因2:没有删除etc/udev/rules.d目录下的70-persistent-net.rules文件
命令:rm -fr /etc/udev/rules.d/70-persistent-net.rules
配置文件错误
方法1:Windows下打开任务处理器(Ctrl + Alt + Delete),结束所有VMware进程,重启Windows。
方法2:删除虚拟机系统目录下的三个以.lck结尾的文件夹; windows下DOS命令窗口输入netsh winsock reset(重置网络配置),重启电脑。
说明(Linux下三种安装文件):
.rpm: 相当于Windows内的.exe文件
.tar解压安装
.yum
步骤:文件>>新建>>名称为虚拟机主机名,主机那一栏填虚拟机IP>>点击确定。
安装Xftp4.exe;然后在Xshell里按下图点击:
通过XShell把Windows中的文件Jdk.rpm上传输到虚拟机,
在虚拟机中键入命令rpm -I jdk-7u67-linux-x64.rpm
(安装JDK)。
输入vi + /etc/profile
按i进入编辑,
修改命令为export JAVA_HOME=/usr/bin/java
export PATH=$PATH:/usr/java/jdk1.7.0_67/bin
按Esc退出编辑:wq保存退出,输入source /etc/profile
回车更新。
在家目录下(~是家目录,按cd 回车进入),输入ll -a ,看看有没有.ssh文件,若无,则先输入ssh localhost,登录完成后输入exit(退出登录)。
输入ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
;(这是密钥生成器以dsa的方式生成密钥,放入家目录的.ssh/id_dsa中)。
输入cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
,(把id_dsa.pub追加到authorized_keys)。
先后输入ssh localhost
验证 (别忘了exit)和ssh node1
验证(node1是主机名,别忘了exit)。
在虚拟机中敲入tar xf hadoop-2.6.5.tar.gz -C /opt/qweqwe
(注:-C的C 是大写,qweqwe可以自己改,这行的命令是将hadoop 安装到qweqwe文件夹下);
然后cd /opt/qweqwe/hadoop-2.6.5
查看是否安装好,没有报错说明成功。
输入vi + /etc/profile
按i进入编辑
修改
export JAVA_HOME=/usr/bin/java
export HADOOP_HOME=/opt/qweqwe/hadoop-2.6.5
(这里的qweqwe是自己取过的)
export PATH=$PATH:/usr/java/jdk1.7.0_67/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
输入hd按Tab键可以联想出hdfs;输入start-d按Tab键可以联想出start-dfs.;就表示配置成功了。
输入:cd /opt/qweqwe/hadoop-2.6.5/etc/hadoop
(这里的qweqwe是自己取过的)
vi hadoop-env.sh
vi mapred-env.sh
vi yarn-env.sh
依次输入上面三个语句,把这三个文件里的JAVA_HOME都改成绝对路径/usr/java/jdk1.7.0_67。
输入vi core-site.xml
在里面的
间输入以下内容:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50090</value>
</property>
输入vi slaves
进入,将内容改为node1 (自己的虚拟机主机名)。
输入hdfs namenode -format
(只能格式化一次,再次启动集群不要执行,否则clusterID变了)。
start-dfs.sh
>>输入jps
验证出现类似下图说明成功:
在Windows的浏览器里输入node1:50070
(node1是 虚拟机主机名,别用360浏览器!)
在虚拟机中
hdfs dfs -mkdir -p /user/root
hdfs dfs -put 500miles.txt /user/root
hdfs dfs -mkdir -p /data/input
hdfs dfs -mkdir -p /data/output
hdfs dfs -put 500miles.txt /data/input
hdfs dfs -ls /data/input
cd /opt/qweqwe/hadoop-2.6.5/share/hadoop/mapreduce/
(qweqwe是自己上面建的)
hadoop jar Hadoop-mapreduce-examples-2.6.5.jar wordcount /data/input /data/output/result
语句说明:wordcount是MapReduce包中一个类。作用是将/data/input中的文件放到/data/output/result中并计算大小。
hdfs dfs -ls /data/output/result
hafs dfs -cat /data/output/result/part-r-00000
cd /opt/qweqwe/hadoop-2.6.5/logs
tail -100 hadoop-root-datanode-node1.log
stop-dfs.sh
(关闭集群,到这一步hadoop配置完成)