下载软件
- VMWare或者VirtualBox
- Ubuntu
- Java
- Hadoop,选择binary
配置
系统安装
在虚拟机中安装Ubuntu系统,用户密码均为linux
,虚拟机名称为master
然后开始利用虚拟机的克隆功能复制出slave1
和slave2
,注意选择完整克隆。
安装SSH、配置SSH无密码登录
若未设置root密码,使用sudo passwd root
设置root密码
使用su
切换到root用户
依次记录三台虚拟机的IP地址
分别编辑三台虚拟机的network文件,vim /etc/sysconfig/network
,分别添加
HOSTNAME=Master
,HOSTNAME=Slave1
,HOSTNAME=Slave2
分别打开三台虚拟机的hosts文件,vim /etc/hosts
,添加如下内容
1 | 192.168.216.131 Master |
安装并启动SSH
1 | apt-get install openssh-server |
分别在三台机器上配置SSH无密码登陆。
1 | cd ~/.ssh/ #若没有该目录,请先执行一次ssh localhost |
此时三台机器可以实现SSH免密钥互通。
安装Java
将下载的jdk压缩包复制到Master中,Master中执行如下命令:
1 | mv jdk-*-linux-x64.tar.gz /usr/local |
复制到Slave1和Slave2
1 | scp -r jdk root@Slave1:/usr/local |
分别设置三台机器环境变量,命令行输入:
1 | echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile |
正确输出java版本即安装成功。
安装Hadoop
将下载的hadoop压缩包复制到Master中,Master中执行如下命令:
1 | mv hadoop-*.tar.gz /usr/local |
hadoop-env.sh
1 | vim hadoop/etc/hadoop/hadoop-env.sh |
添加
1 | export JAVA_HOME=/usr/jdk |
core-site.xml
1 | vim hadoop/etc/hadoop/core-site.xml |
添加
1 | <configuration> |
hdfs-site.xml
1 | vim hadoop/etc/hadoop/hdfs-site.xml |
添加
1 | <configuration> |
mapred-site.xml
1 | vim hadoop/etc/hadoop/mapred-site.xml |
修改
1 | <configuration> |
yarn-site.xml
1 | vim hadoop/etc/hadoop/yarn-site.xml |
添加
1 | <configuration> |
masters
1 | vim hadoop/etc/hadoop/masters |
修改
1 | Master |
slaves
1 | vim hadoop/etc/hadoop/slaves |
修改
1 | Slave1 |
复制到Slave1和Slave2
1 | scp -r hadoop root@Slave1:/usr/local |
分别设置环境变量
1 | echo "export HADOOP_HOME=/usr/local/hadoop" >> /etc/profile |
防火墙
分别关闭防火墙
1 | firewall-cmd --state |
启动
1 | hadoop namenode -format |
分别输入jps
可以看到:
Master
1 | 9280 NameNode |
Slave
1 | 12048 NodeManager |
命令
hadoop dfsadmin -report
查看集群状态
http://192.168.216.131:50070
Web查看集群状态
测试
统计词频
shell中输入命令如下:
1 | cd /home |
输入内容如下
1 | import java.io.IOException; |
进行编译
1 | javac -d word_count_class/ WordCount.java |
打包
1 | jar -cvf word_count_class/wordcount.jar *.class |
测试文件1-file1
1 | mkdir input |
1 | hello world |
测试文件2-file2
1 | vim input/file2 |
1 | new file |
提交
1 | hadoop fs -mkdir input_wordcount |
查看结果
1 | hadoop fs -ls output_wordcount |
数据排序
测试文件
1 | mkdir sort |
1 | 2 |
1 | vim input/file2 |
1 | 5956 |
1 | vim input/file3 |
1 | 26 |
代码
1 | vim Sort.java |
1 | import java.io.IOException; |
编译
1 | javac -d data_sort_class/ Sort.java |
打包
1 | jar -cvf datasort.jar *.class |
提交
1 | hadoop fs -mkdir input_datasort |
查看结果
1 | hadoop fs -ls output_wordcount |