准备工作:
1.在Windows上安装VMware12
2.在VMware12上安装centos7
3.在Windows上安装secureCRT或Xshell
安装步骤和本教程所有安装软件下载地址见本评论区链接
1.关闭防火墙
firewall-cmd --state 显示防火墙状态running/not running
systemctl stop firewalld 临时关闭防火墙,每次开机重新开启防火墙
systemctl disable firewalld 禁止防火墙服务。
2.传输JDK和HADOOP压缩包
SecureCRT 【File】→【Connect SFTP Session】开启sftp操作
put jdk-8u121-linux-x64.tar.gz
put hadoop-2.7.3.tar.gz
传输文件从本地当前路径(Windows)到当前路径(Linux)
3.解压JDK、HADOOP
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module 解压安装
tar -zxvf hadoop-2.7.3.tar.gz -C /opt/module 解压安装
4.配置JDK并生效
vi /etc/profile文件添加:
export JAVA_HOME=/opt/module/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
Esc :wq!保存并退出。不需要配置CLASSPATH。
source /etc/profile配置生效
javac检验是否成功
或者在/.bashrc文件里添加JAVA_HOME,可以对不同用户设置不同配置权限。
5.配置HADOOP并生效
vi /etc/profile文件添加:
export HADOOP_HOME=/opt/module/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
Esc :wq!保存并退出。
source /etc/profile配置生效
hadoop检验是否成功
5.本地模式配置hadoop -env.sh
vi /opt/module/hadoop-2.7.3/etc/hadoop/hadoop-env.sh文件修改
显示行号 Esc :set number 取消行号Esc :set nonumber
修改第25行export JAVA_HOME=/opt/module/jdk1.8.0_121
Esc :wq!保存并退出
本地模式没有HDFS和Yarn,配置JDK后MapReduce能够运行java程序。
6.运行自带程序wordcount
cd /opt/module/hadoop-2.7.3/share/hadoop/mapreduce 转入wordcount所在路径
touch in.txt 创建In.txt文件
vi in.txt 输入要统计词频的文字
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount in.txt output/
运行wordcount,output目录必须不存在,程序运行之后自动创建。
只有一台虚拟机bigdata128,4个配置文件:
1.core-site.xml
<!--配置HDFS主节点,namenode的地址,9000是RPC通信端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata128:9000</value>
</property>
<!--配置HDFS数据块和元数据保存的目录,一定要修改-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.3/tmp</value>
</property>
2.hdfs-site.xml
<!--注释配置数据块的冗余度,默认是3-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--secondaryNameNode的主机地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdata129:50090</value>
</property>
3. mapred-site.xml(该配置文件不存在,先复制)
cp mapred-site.xml.template mapred-site.xml
<!--配置MR程序运行的框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
4. yarn-site.xml
<!--配置Yarn的节点-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata128</value>
</property>
<!--NodeManager执行MR任务的方式是Shuffle洗牌-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
格式化: hdfs namenode -format
启动: start-all.sh
共3个虚拟机,前述伪分布式的bigdata128作为master,克隆另外两个虚拟机slaves:bigdata129、bigdata131,克隆机自带安装JDK、Hadoop及配置文件。
3个虚拟机都修改slaves,添加两个子节点:
vi /opt/module/hadoop-2.7.3/etc/hadoop slaves
bigdata128
bigdata129
bigdata131
3个虚拟机都修改\etc\hosts,注释已有内容,添加集群3个虚拟机的ip及对应主机名:
192.168.163.128 bigdata128
192.168.163.129 bigdata129
192.168.163.131 bigdata131
3个虚拟机各自修改\etc\hostname,添加各自的主机名bigdata128或者bigdata129或者bigdata131。
重启全部虚拟机,主机名生效。
3个虚拟机都删除\opt\module\hadoop-2.7.3\d的tmp、logs目录:
rm –rf \opt\module\hadoop-2.7.3\tmp rm –rf \opt\module\hadoop-2.7.3\logs
格式化master: hdfs namenode -format
启动master: start-all.sh
启动正常jps显示3台主机如上如下
启动正常创建目录如下