centos7配置静态网络常见问题归纳_张小鱼༒的博客-CSDN博客
centos7克隆虚拟机完成后的的一些配置介绍_张小鱼༒的博客-CSDN博客
目录
系列文章目录
文章目录
前言
一、前期准备
二、Hadoop介绍
2.1、Apache Hadoop
2.2、Cloudera Hadoop
2.3、Hortonworks Hadoop
2.4、Hadoop1与Hadoop2的区别
2.5、大数据技术生态体系
三、虚拟机环境准备
1. 克隆虚拟机
2. 修改克隆虚拟机的静态IP
3、修改主机名和映射
4、关闭防火墙
5、配置centos用户具有root权限
6、在/opt目录下创建文件夹
四、配置jdk过程
1. 卸载现有JDK
2. 用SecureCRT工具将JDK导入到opt目录下面的software文件夹下面
3、在Linux系统下的opt目录中查看软件包是否导入成功
4、解压JDK到/opt/module目录下
5、配置JDK环境变量
7、 测试JDK是否安装成功
五、安装Hadoop过程
1、Hadoop下载地址:
2、用SecureCRT工具将hadoop-2.7.2.tar.gz导入到opt目录下面的software文件夹下面
3、进入到Hadoop安装包路径下
4、解压安装文件到/opt/module下面
5、查看是否解压成功
6、将Hadoop添加到环境变量
7、 测试是否安装成功
编辑
8、 重启(如果Hadoop命令不能用再重启)
9、Hadoop目录结构
9.1、查看Hadoop目录结构
编辑
9.2、重要目录
六、配置Hadoop本地模式
6.1、官方Grep案例
编辑
6.2、官方WordCount案例
七、配置Hadoop伪分布式模式
7.1、 启动HDFS并运行MapReduce程序
八、其余yarn和mapreduce的配置
1. 分析
2. 执行步骤
(1)配置集群
(2)启动集群
(3)集群操作
(4)配置历史服务器
(5)配置日志的聚集
结语
本文主要介绍centos7配置Hadoop单节点伪分布式配置的步骤,以下是配置过程演示
!!!文档说明:后期的命令前面的#不包含在命令当中,命令是#后面的!!!
配置之前需要下载上传jdk和Hadoop的压缩包到我们的虚拟机,可以使用辅助软件进行上传。
Hadoop三大发行版本:Apache、Cloudera、Hortonworks。
Apache版本最原始(最基础)的版本,对于入门学习最好。
Cloudera在大型互联网企业中用的较多。
Hortonworks文档较好。
官网地址:http://hadoop.apache.org/releases.html
下载地址:Index of /dist/hadoop/common
官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
(1)2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训。
(2)2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support
(3)CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。
(4)Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即是对Hadoop的技术支持。
(5)Cloudera的标价为每年每个节点4000美元。Cloudera开发并贡献了可实时处理大数据的Impala项目。
官网地址:https://hortonworks.com/products/data-center/hdp/
下载地址:https://hortonworks.com/downloads/#data-platform
(1)2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建。
(2)公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop80%的代码。
(3)雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。
(4)Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。
(5)HCatalog,一个元数据管理系统,HCatalog现已集成到Facebook开源的Hive中。Hortonworks的Stinger开创性的极大的优化了Hive项目。Hortonworks为入门提供了一个非常好的,易于使用的沙盒。
(6)Hortonworks开发了很多增强特性并提交至核心主干,这使得Apache Hadoop能够在包括Window Server和Windows Azure在内的Microsoft Windows平台上本地运行。定价以集群为基础,每10个节点每年为12500美元。
图中涉及的技术名词解释如下:
1)Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
2)Flume:Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,有如下特性:
(1)通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
(2)高吞吐量:即使是非常普通的硬件,Kafka也可以支持每秒数百万的消息。
(3)支持通过Kafka服务器和消费机集群来分区消息。
(4)支持Hadoop并行数据加载。
4)Storm:Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。
5)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
6)Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。
7)HBase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
8)Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
10)R语言:R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
11)Mahout:Apache Mahout是个可扩展的机器学习和数据挖掘库。
12)ZooKeeper:Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
【此处修改时以root用户进入( su root )】
BOOTPROTO="static"【修改为静态】
ONBOOT="yes"
IPADDR=192.168.215.203【此处选择你自己的IP段】
NETMASK=255.255.255.0
GATEWAY=192.168.215.2【查看你的默认网关】
DNS1=192.168.215.2【添加一个备用网址】
1)修改主机名
vim /etc/sysconfig/network
编辑修改:
HOSTNAME=hadoop203【此处你自己定义】
2)修改映射
vim /etc/hosts
配置内容:
192.168.2.203 hadoop203
【配置伪分布式时记得把对应的映射关系加上】
vim /etc/selinux/config
SELINUX=disabled
# chkconfig iptables off
# chkconfig ip6tables off
# service iptables stop
此处小编创建虚拟机时就是centos的用户,这里主要看你的是什么用户名
# visudo【centos7版本的直接用这个命令】
--#vi /etc/sudoers 注意:该命令无法保存
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
centos ALL=(ALL) ALL
或者配置成采用sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) NOPASSWD:ALL
修改完毕,现在可以用hadoop帐号登录,然后用命令 sudo ,即可获得root权限进行操作
(1)在/opt目录下创建module、software文件夹【此处不用root用户】
[hadoop@hadoop101 opt]$ sudo mkdir module
[hadoop@hadoop101 opt]$ sudo mkdir software
(2)修改module、software文件夹的所有者为centos
[hadoop@hadoop101 opt]$ sudo chown centos:centos module/ software/
[hadoop@hadoop101 opt]$ ll
总用量 8
drwxr-xr-x. 2 hadoop hadoop 4096 1月 17 14:37 module
drwxr-xr-x. 2 hadoop hadoop 4096 1月 17 14:38 software
(1)查询是否安装Java软件:
[hadoop@hadoop101 opt]$ rpm -qa | grep java
(2)如果安装的版本低于1.7,卸载该JDK:
[hadoop@hadoop101 opt]$ sudo rpm -e 软件包
(3)查看JDK安装路径:
[hadoop@hadoop101 ~]$ which java
/opt/module/jdk1.8.0_144/bin/java
如图2-28所示
图2-28 导入JDK
“alt+p”进入sftp模式,如图2-29所示
图2-29 进入sftp模式
选择jdk1.8拖入,如图2-30,2-31所示
图2-30 拖入jdk1.8
图2-31 拖入jdk1.8完成
[hadoop@hadoop101 opt]$ cd software/
[hadoop@hadoop101 software]$ ls
hadoop-2.7.2.tar.gz jdk-8u144-linux-x64.tar.gz
[hadoop@hadoop101 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
(1)先获取JDK路径
[hadoop@hadoop101 jdk1.8.0_144]$ pwd
/opt/module/jdk1.8.0_144
(2)打开/etc/profile文件
[hadoop@hadoop101 software]$ sudo vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin【javabin目录直接找到,加到path下】
(3)保存后退出 :wq
(4)让修改后的文件生效
[hadoop@hadoop101 jdk1.8.0_144]$ source /etc/profile
[hadoop@hadoop101 jdk1.8.0_144]# java -version
java version "1.8.0_144"
注意:重启(如果java -version可以用就不用重启)
[hadoop@hadoop101 jdk1.8.0_144]$ sync
[hadoop@hadoop101 jdk1.8.0_144]$ sudo reboot
Index of /dist/hadoop/common/hadoop-2.7.2
切换到sftp连接页面,选择Linux下编译的hadoop jar包拖入,如图2-32所示
图2-32 拖入hadoop的tar包
图2-33 拖入Hadoop的tar包成功
[hadoop@hadoop101 ~]$ cd /opt/software/
[hadoop@hadoop101 software]$ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
[hadoop@hadoop101 software]$ ls /opt/module/
hadoop-2.7.2
(1)获取Hadoop安装路径
[hadoop@hadoop101 hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.7.2
(2)打开/etc/profile文件
[hadoop@hadoop101 hadoop-2.7.2]$ sudo vi /etc/profile
在profile文件末尾添加JDK路径:(shitf+g)
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
(3)保存后退出 :wq
(4)让修改后的文件生效
[hadoop@ hadoop101 hadoop-2.7.2]$ source /etc/profile
[hadoop@hadoop101 hadoop-2.7.2]$ hadoop version
Hadoop 2.7.2
[hadoop@ hadoop101 hadoop-2.7.2]$ sync
[hadoop@ hadoop101 hadoop-2.7.2]$ sudo reboot
[hadoop@hadoop101 hadoop-2.7.2]$ ll
总用量 52
drwxr-xr-x. 2 hadoop hadoop 4096 5月 22 2017 bin
drwxr-xr-x. 3 hadoop hadoop 4096 5月 22 2017 etc
drwxr-xr-x. 2 hadoop hadoop 4096 5月 22 2017 include
drwxr-xr-x. 3 hadoop hadoop 4096 5月 22 2017 lib
drwxr-xr-x. 2 hadoop hadoop 4096 5月 22 2017 libexec
-rw-r--r--. 1 hadoop hadoop 15429 5月 22 2017 LICENSE.txt
-rw-r--r--. 1 hadoop hadoop 101 5月 22 2017 NOTICE.txt
-rw-r--r--. 1 hadoop hadoop 1366 5月 22 2017 README.txt
drwxr-xr-x. 2 hadoop hadoop 4096 5月 22 2017 sbin
drwxr-xr-x. 4 hadoop hadoop 4096 5月 22 2017 share
(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本【集群的启动命令】
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。
Hadoop官方网站:Apache Hadoop
本地运行模式
1. 创建在hadoop-2.7.2文件下面创建一个input文件夹
[hadoop@hadoop101 hadoop-2.7.2]$ mkdir input
2. 将Hadoop的xml配置文件复制到input
[hadoop@hadoop101 hadoop-2.7.2]$ cp etc/hadoop/*.xml input
3. 执行share目录下的MapReduce程序
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'【前面配置path不写bin直接写hadoop即可】
4. 查看输出结果
[hadoop@hadoop101 hadoop-2.7.2]$ cat output/*
查看刚才单结点运行的结果
删除刚才验证的文件夹input和putput文件夹
1. 创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
[hadoop@hadoop101 hadoop-2.7.2]$ mkdir wcinput
2. 在wcinput文件下创建一个wc.input文件
[hadoop@hadoop101 hadoop-2.7.2]$ cd wcinput
[hadoop@hadoop101 wcinput]$ touch wc.input
3. 编辑wc.input文件
[hadoop@hadoop101 wcinput]$ vi wc.input
在文件中输入如下内容
hadoop yarn
hadoop mapreduce
hadoop
hadoop
保存退出::wq
4. 回到Hadoop目录/opt/module/hadoop-2.7.2
5. 执行程序
[hadoop@hadoop101 hadoop-2.7.2]$ hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
6. 查看结果
[hadoop@hadoop101 hadoop-2.7.2]$ cat wcoutput/part-r-00000
hadoop 2
hadoop 2
mapreduce 1
yarn 1
1. 分析
(1)配置集群
(2)启动、测试集群增、删、查
(3)执行WordCount案例
2. 执行步骤
(1)配置集群
(a)配置:hadoop-env.sh 【路径:/opt/module/hadoop-2.7.2/etc/hadoop】
Linux系统中获取JDK的安装路径:
[hadoop@hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.8.0_144
修改JAVA_HOME 路径:
export JAVA_HOME=/opt/module/jdk1.8.0_144
(b)配置:core-site.xml
|
(c)配置:hdfs-site.xml
|
(2)启动集群
(a)格式化NameNode(第一次启动时格式化,以后就不要总格式化)
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format
(b)启动NameNode
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
(c)启动DataNode
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
(3)查看集群
(a)查看是否启动成功
[hadoop@hadoop101 hadoop-2.7.2]$ jps
13586 NameNode
13668 DataNode
13786 Jps
注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps
(b)web端查看HDFS文件系统
http://hadoop101:50070/dfshealth.html#tab-overview
注意:如果不能查看,看如下帖子处理
hadoop 50070 无法访问问题解决汇总 - 大数据和AI躺过的坑 - 博客园
(c)查看产生的Log日志
注意:启动时产生logs文件夹
说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。
当前目录:/opt/module/hadoop-2.7.2/logs
[hadoop@hadoop101 logs]$ ls
hadoop-hadoop-datanode-hadoop.hadoop.com.log
hadoop-hadoop-datanode-hadoop.hadoop.com.out
hadoop-hadoop-namenode-hadoop.hadoop.com.log
hadoop-hadoop-namenode-hadoop.hadoop.com.out
SecurityAuth-root.audit
[hadoop@hadoop101 logs]# cat hadoop-hadoop-datanode-hadoop101.log
(d)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?
注意:格式化时产生data文件夹
[hadoop@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/name/current/
[hadoop@hadoop101 current]$ cat VERSION
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837
[hadoop@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/data/current/
[hadoop@hadoop101 current]$ cat VERSION
clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837
注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。(先关闭namenode和datanode进程)
(4)操作集群
(a)在HDFS文件系统上创建一个input文件夹
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/hadoop/input
(b)将测试文件内容上传到文件系统上
[hadoop@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put wcinput/wc.input /user/hadoop/input/
(c)查看上传的文件是否正确
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls /user/hadoop/input/
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/hadoop/ input/wc.input
(d)运行MapReduce程序
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hadoop/input/ /user/hadoop/output
(e)查看输出结果
命令行查看:
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/hadoop/output/*
浏览器查看,如图2-34所示
关闭集群:
打开web页面:http://192.168.215.203:50070
(1)配置集群在YARN上运行MR
(2)启动、测试集群增、删、查
(3)在YARN上执行WordCount案例
(a)配置yarn-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
(b)配置yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop101
(c)配置:mapred-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
(d)配置: (对mapred-site.xml.template重新命名为) mapred-site.xml
[hadoop@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[hadoop@hadoop101 hadoop]$ vi mapred-site.xml
mapreduce.framework.name
yarn
(a)启动前必须保证NameNode和DataNode已经启动
(b)启动ResourceManager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
(c)启动NodeManager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
(a)YARN的浏览器页面查看,如图2-35所示
http://hadoop101:8088/cluster
Web页面:http://192.168.215.203:8088/cluster
图2-35 YARN的浏览器页面
(b)删除文件系统上的output文件
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/hadoop/output
(c)执行MapReduce程序
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hadoop/input /user/hadoop/output
(d)查看运行结果,
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/hadoop/output/*
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
1. 配置mapred-site.xml
[hadoop@hadoop101 hadoop]$ vi mapred-site.xml
在该文件里面增加如下配置。
mapreduce.jobhistory.address
hadoop101:10020
mapreduce.jobhistory.webapp.address
hadoop101:19888
2. 启动历史服务器
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
3. 查看历史服务器是否启动
[hadoop@hadoop101 hadoop-2.7.2]$ jps
4. 查看JobHistory
http://hadoop101:19888/jobhistory
Web页面:http://192.168.215.203:19888/jobhistory
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryManager。
开启日志聚集功能具体步骤如下:
[hadoop@hadoop101 hadoop]$ vi yarn-site.xml
在该文件里面增加如下配置。
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop resourcemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh stop nodemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh stop historyserver
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
[hadoop@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
[hadoop@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/hadoop/output
[hadoop@hadoop101 hadoop-2.7.2]$ hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/hadoop/input /user/hadoop/output
最后欢迎大家点赞,收藏⭐,转发,
如有问题、建议,请您在评论区留言哦。