我安装的hadoop-2.7.3
一、
首先下载
jdk-8u121-linux-x64.tar.gz
然后上传到Linux
解压到/opt/module
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module
配置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,可以对不同用户设置不同配置权限。
二、下载hadoop-2.7.3
1、上传到Linux,解压到/opt/module
tar -zxvf hadoop-2.7.3 -C /opt/module
2、配置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检验是否成功
3、本地模式配置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程序。
4.运行自带程序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目录必须不存在,程序运行之后自动创建。
Hadoop伪分布式模式配置
只有一台虚拟机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
启动master: start-all.sh
3、完全分布式安装
共3个虚拟机,前述伪分布式的作为master,克隆另外两个虚拟机slaves:slave1,slave2,克隆机自带安装JDK、Hadoop及配置文件。
3个虚拟机都修改slaves,添加两个子节点:
vi /opt/module/hadoop-2.7.3/etc/hadoop slaves
master
slave1
slave2
3个虚拟机都修改\etc\hosts,注释已有内容,添加集群3个虚拟机的ip及对应主机名:
192.168.87.10 master
192.168.87.11 slave1
192.168.87.12 slave2
3个虚拟机各自修改\etc\hostname,添加各自的主机名master或者slave1或者slave2。
重启全部虚拟机,主机名生效。
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
登陆网址出现以下页面就成功了。