hadoop是基于java编写的分布式框架,要安装hadoop,必须先安装java的开发环境
jdk下载
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
hadoop官网下载
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
一、 安装
用FileZilla连接远程的CentOS虚拟机
将下载的jdk拖入用户目录下
查看根目录下jdk解压后的文件
在/opt下创建文件夹module
mkdir module
安装JDK:将jdk解压到所创建的/opt/module文件夹下
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /opt/module/
安装HADOOP:同样解压
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
配置java和hadoop的环境变量
将java添加到环境变量中,即将bin目录放在系统环境变量path中
打开配置文件
sudo vim /etc/profile
在文件最后添加(shift+g回到底部,gg回到顶部)
export JAVA_HOME=/opt/module/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
保存退出
刷新配置
source /etc/profile
查看java版本
hadoop版本
二、hadoop的相关配置
进入到hadoop的安装目录
cd /opt/module/hadoop-2.7.2/
进入hadoop配置的文件夹
cd etc/hadoop/
配置系群:hadoop-env.sh文件 添加JDK的安装路径
注:含有env名称的文件,需要对其进行添加JAVA_HOME
添加JAVA_HOME
指定HFDS中的namnode地址以及指定hadoop运行时所产生文件的存储目录
修改core-site.xml ,HADOOP安装目录下的etc/Hadoop/ 末尾添加
fs.defaultFS
hdfs://hadoop100:9000
hadoop.tmp.dir
/opt/module/hadoop-2.7.2/data/tmp
修改hdfs-site.xml副本数量改为1
dfs:replication
1
格式化集群
hadoop的安装目录下执行
bin/hdfs namenode -format
启动 namenode , hadoop安装目录下执行
sbin/hadoop-daemon.sh start namenode
启动 datanode ,hadoop安装目录下执行
sbin/hadoop-daemon.sh start datanode
jps查看当前hadoop运行的java进程
在google浏览器查看hadoop运行情况,对应的ip或主机名+端口号,端口号hadoop2默认50070,hadoop3以上为9870
前提关闭防火墙
service iptables stop //关闭防火墙
service iptables start //开启防火墙
service iptables status //查看防火墙状态
chkconfig iptables off //永久关闭
三:实现wordcount
创建hdfs的目录
Hadoop的安装目录下 bin/hdfs dfs -mkdir -p /user/Huzee/input
将本地文件上传到HDFS
Hadoop安装目录下 bin/hdfs dfs -put wcinput/wc.input /user/Huzee/input
在hdfs中执行wordcount
Datanode和namenode 集群ID相同,它们之间相互交互
故再次格式化namenode需要删除/opt/module/hadoop-2.7.2/data/tmp/dfs下的data和name里的文件
四:启动YARN并运行MapReduce程序
(1)配置集群
(a) 配置 yarn_env.sh env等文件需要配置JAVA_HOME
(b) 配置yarn-site.xml
(c) 配置mapred_env.sh (java_home)
(d) 配置mapred-site.xml.template重新命名为mapred-site.xml
mapreduce.framework.name
yarn
(2)启动集群
(a) 启动的前提保证namenode和datanode都正常运行
(b) 启动resourcemanager
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh start resourcemanager
(c) 启动nodemanager
[root@hadoop100 hadoop-2.7.2]# sbin/yarn-daemon.sh start nodemanager
jps查看进程
yarn端口号8088,在网页中实时看到占用计算内存的大小
四:配置历史服务器
1. 配置mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
hadoop100:10020
mapreduce.jobhistory.webapp.address
hadoop100:19888
2 启动历史服务器
[root@hadoop100 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start historyserver
3 端口号19888,查询计算时历史参数的情况
配置日志聚集yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop100
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800