CentOS安装Hadoop集群
一:下载Hadoop,解压,目录介绍
1:下载地址
http://archive.apache.org/dist/hadoop/common
2:上传到服务器并解压
tar -zxvf hadoop-2.8.2.tar.gz
3:目录介绍
bin:Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
etc:Hadoop配置文件所在的目录,包括core-site.xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0新增的配置文件。
include:对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
lib:该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
libexec:各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
sbin:Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
share:Hadoop各个模块编译后的jar包所在的目录。
二:配置Hadoop
1:进入配置文件目录
我的hadoop放在/apps/hadoop/下
cd /apps/hadoop/hadoop-2.8.2/etc/hadoop
2:修改java环境
vi hadoop-env.sh
export JAVA_HOME=/apps/java/jdk1.8 //修改java环境变量
3:修改核心文件
vi core-site.xml
<!--指定hadoop所使用的文件系统SCHEMA(URI),HDFS的老大NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.209.100:9000</value>
</property>
<!--指定hadoop运行时产生文件的储存目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/apps/hadoop/hadoop-2.8.2/tmp</value>
</property>
4:修改hdfs文件
vi hdfs-site.xml
<!--指定hdfs副本数量-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>192.168.209.100:50090</value>
</property>
5:修改mapred文件
hadoop里面只有mapred-site.xml.template模板,需要我们手动复制一个mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
修改文件
vi mapred-site.xml
<!--指定mapred运行在哪里-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.209.100:10020</value>
</property>
6.修改yarn文件
vi yarn-site.xml
<!--指定yarn的老大(ResourceManager)-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.209.100</value>
</property>
<!--reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
7.配置环境变量
vi /etc/profile
JAVA_HOME=/apps/java/jdk1.8
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
HADOOP_HOME=/apps/hadoop/hadoop-2.8.2
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME JRE_HOME CLASS_PATH HADOOP_HOME PATH
三:启动Haddop
1:格式化namenode
hadoop namenode -format //第一次启动时使用
//自动生成的地址
/apps/hadoop/hadoop-2.8.2/tmp/dfs/name/current/
2.启动namenode
hadoop-daemon.sh start namenode //HDFS启动
hadoop-daemon.sh stop namenode //HDFS关闭
3.启动datanode
hadoop-daemon.sh start datanode //HDFS启动
hadoop-daemon.sh stop datanode //HDFS关闭
4.启动secondarynamenode
hadoop-daemon.sh start secondarynamenode //HDFS启动
hadoop-daemon.sh stop secondarynamenode //HDFS关闭
启动成功后:
http://192.168.209.100:50070 //HDFS管理界面
http://192.168.209.100:8088 //MR管理界面(yarn)
5.上传文件到HDFS根目录
hdfs dfs -put install.log /
6.创建快捷启动
6.1:修改slaves文件(此文件位于hadoop安装目录下的/etc/hadoop里)
//我的hadoop安装目录为/apps/hadoop/hadoop-2.8.2
cd /apps/hadoop/hadoop-2.8.2/etc/hadoop
//修改slaves文件
vi slaves
//将slaves里面的内容删除掉,修改成自己的所有hadoop服务器ip
192.168.209.100
192.168.209.101
192.168.209.102
//将slaves拷贝到其他服务器
scp -r slaves root@192.168.209.101:/apps/hadoop/hadoop-2.8.2/etc/hadoop/
scp -r slaves root@192.168.209.102:/apps/hadoop/hadoop-2.8.2/etc/hadoop/
6.2:一键启动
进入hadoop安装目录下的sbin目录
//我的hadoop安装目录为/apps/hadoop/hadoop-2.8.2
cd /apps/hadoop/hadoop-2.8.2/sbin
./start-dfs.sh //HDFS启动
./stop-dfs.sh //HDFS关闭
7.yarn启动
./start-yarn.sh //yarn启动
./stop-yarn.sh //yarn关闭
8.测试计算
//我的hadoop安装目录为/apps/hadoop/hadoop-2.8.2
cd /apps/hadoop/hadoop-2.8.2/share/hadoop/mapreduce
//计算圆周率(第1个100指的是要运行100次map任务,第2个数字指的是每个map任务,要投掷多少次,2个参数的乘积就是总的投掷次数。)
hadoop jar hadoop-mapreduce-examples-2.8.2.jar pi 5 10