(2) Hadoop-集群搭建 HDFS入门
2017-10-30 18:41
316 查看
1.Hadoop 介绍
概述
用java编写开源框架,允许使用简单的API在大量的 计算机集群上 针对 大型数据集 进行分布式处理 。Hadoop 核心组建 (狭义)
HDFS (分布式文件系统):针对海量数据的存储YARN (作业调度,集群资源管理框架) : 解决资源任务调度,资源包括内存 CPU 磁盘。。
MAPREDUCE(分布式运算编程框架):解决海量数据的计算
Hadoop 生态圈 (广义) 同spring想类似,spring生态圈
HDFS:分布式文件系统MAPREDUCE:分布式运算程序开发框架
HIVE:基于 HADOOP 的分布式数据仓库,提供基于 SQL 的查询数据操作
HBASE:基于 HADOOP 的分布式海量数据库
ZOOKEEPER:分布式协调服务基础组件
Mahout:基于 mapreduce/spark/flink 等分布式运算框架的机器学习算法库
Oozie:工作流调度框架
Sqoop:数据导入导出工具(比如用于 mysql 和 HDFS 之间)
Flume:日志数据采集框架
Impala:基于 Hadoop 的实时分析
2.Hadoop 国内外应用
在大数据的行业 各个领域都会有应用,因此在未来的发展绝对会没有问题 需求量也会越来越大!坚信自己的选择,做人做事一定要明白 不是因为看到才会相信,而是因为相信才要坚持 。3.Hadoop 特性优点
扩容能力 : 在需要的时候可以扩大集群计算成本低 : 对于服务器性能要求低
效率高 : 通过并发数据,hadoop节点之间动态并行的移动数据
可靠性 : 能自动维护数据的多份,如果计算任务失败后可以重新部署计算任务
4.Hadoop 集群的搭建
节点之间如何去通信? 如果主节点挂掉怎么版?如果主节点挂掉 有个HA,主备关系
Hadoop分商业版(CDH) 还有社区版
搭建集群的注意事项
注意是两套集群 一个套是NameNode-DataNode 另一套是 resourceManage NodeManage需要给自己本机也配置免密登陆 1. ssh node1 2. ssh-copy-id node-1
ls -al 显示所有隐藏文件 当输入vi指令需要按下回车键的时候,有个好像是以swap结尾的扩展名删除就可以了,出现这个问题的时候是因为在vi编辑指令的时候没有正常退出。
启动指令的注意事项 /sbin/, start-all.sh
出现下面的log错误的话 解决方案:将目录、dfs、name、data清空是重复启动到时key值不一样
Datanode Uuid unassigned) service to node-1/192.168.20.101:9000. Exiting.
6.第二天起来再次启动集群的时候会出现下面这个异常
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:Directory does not exist?但是为什么刚装完时是存在的呢,抱着试试看的态度,再次执行。 hadoop namenode -format 执行之后再启动,namenode启动成功了,说明上面does not exist的目录在format namenode的时候重新建起来了,但是如果每次重启都要format namenode, 也太不靠谱了,不止是麻烦,更大的麻烦是里面的数据不能总被无情的delete掉啊,问题必须解决。 Directory /tmp/hadoop-javoft/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible. 这 里的目录既然是在tmp下面的,回忆一下,tmp目录下的文件是临时文件会被定期删除的,貌似bug已经露出水面。那就重启计算机试试是不是因为这, 重启 之前检查一下tmp目录下面确定几个format namenode之后应该有的目录都有的,重启之后,发现全部被删掉。 在执行一次 start-dfs.sh,看到tmp目录下面建了一些目录,但是dfs/name目录仍然不存在,在start-dfs.sh时候建了一部分目录和文 件。 而dfs/name需要在hadoop namenode -format时建立。问题清楚了。 解决方案就很简单,这些目录的位置都是根据hadoop.tmp.dir的位置确定的,所以只需要在conf/core-site.xml覆盖hadoop.tmp.dir的默认值即可: ... <property> <name>hadoop.tmp.dir</name> <value>/home/javoft/Documents/hadoop/hadoop-${user.name}</value> <description>A base for other temporary directories.</description> </property
具体搭建步骤如下 详细步骤
看我博客的朋友,请安装下面的步骤依次执行,如果在安装过程中出现问题,就去参照搭建集群的注意事项的问题 。我下面的搭建属性是依次安装hadoop架构层次去搭建 hadoop 根目录下面 /etc/hadoop/ 是需要修改的配置文件
运行环境
1. CentOS 6.7 2. jdk 1.8 3. VMWare Pro 12 4. Hadoop 2.7.4 目前是最稳定版本,属于社区版
安装下面的需求去搭建集群
node-01 NameNode DataNode ResourceManager node-02 DataNode NodeManager SecondaryNameNode node-03 DataNode NodeManager
1. 第一步去配置java环境变量,因为在hadoop框架在运行的时候有可能会找不到jdk环境变量,这步不是必须而是为了确保
第一个:hadoop-env.sh vi hadoop-env.sh export JAVA_HOME=/root/apps/jdk1.8.0_65
2. 下面配置的是namenode节点所在的服务器,同时也配置HDFS文件系统所在的目录 很关键
第二个:core-site.xml <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://node-1:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录,默认/tmp/hadoop-${user.name} --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.7.4/tmp</value> </property>
3. 下面是配置HDFS所产生的副本数,副本数默认是三个,以及secondarynamenode所在的服务器
第三个:hdfs-site.xml <!-- 指定HDFS副本的数量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>node-2:50090</value> </property>
4. 配置YARN集群的一些属性,标注resourceMangeer nodemanage
第四个:yarn-site.xml <!-- 指定YARN的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node-21</value> </property> <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
5. 配置Mapreduce分布式计算框架,并行移动计算
第五个:mapred-site.xml mv mapred-site.xml.template mapred-site.xml vi mapred-site.xml <!-- 指定mr运行时框架,这里指定在yarn上,默认是local --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
6. 配置datanode nodemanage 从节点的IP地址
第六个:slaves文件,里面写上从节点所在的主机名字 vi slaves node-1 node-2 node-3
7.进行初始化操作,主要是初始化namenode节点,执行下面的指令后会在/home/hadoop/hadoop-2.7.4/tmp生成目录,这个目录就是dfs分布式文件系统目录,其他所有子节点也都会生成
hdfs namenode -format (hadoop namenode -format)
8.HDFS启动的详细介绍
HDFS 启动有两种 1. 节点单独启动 2. 统一启动 (一定要先启动HDFS 在去启动yarn)9.节点单独启动
sbin/hadoop-daemon.sh start datanode|nodeManage|namenode|secondaryNode 需要去不同的节点去搞起 注意启动的时候通过jps 查看启动的节点进程,
10.节点单独启动
先启动HDFS sbin/start-dfs.sh 再启动YARN sbin/start-yarn.sh 全部启动 start-all.sh // 上面两部合并 查看节点启动情况 使用jps命令验证 27408 NameNode 28218 Jps 27643 SecondaryNameNode 28066 NodeManager 27803 ResourceManager 27512 DataNode
11. 查看是否启动成功
关闭防护墙去查看 最好用Google浏览器 http://192.168.20.101:50070 (HDFS管理界面) //节点的IP是 namenode 端口号50070 http://192.168.20.101:8088 (MR管理界面) // 节点的IP是 resourcemanger 端口号8088 运行上面的内容都能看界面出现代表运行成功
12. 查看 HDFS文件系统的界面一些内容
12. 查看 YARN插件运行状态
13.文件的上传到HDFS上面 从HDFS系统上面下载文件
从Linux本地上传到 HDFS文件系统1. hadoop fs -mkdir /rui 在hdfs上面创建一个目录 2. hadoop fs -put /linux目录或文件 /rui 从Linux系统中上传目录或文件到 hfds上面的rui目录下面
查看文件HDFS客户显示的内容
Mapreduce jar包的运行并行计算
任务MR提交给YARN,YARN负责管理资源调度的问题在 Hadoop 安装包的 hadoop-2.7.4/share/hadoop/mapreduce 下有官方自带 的 mapreduce 程序。我们可以使用如下的命令进行运行测试。 示例程序 jar: hadoop-mapreduce-examples-2.7.4.jar 计算圆周率: hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 20 50 关于圆周率的估算,感兴趣的可以查询资料 Monte Carlo 方法来计算 Pi 值。
相关文章推荐
- [笔记]hadoop2.4.1伪分布式集群搭建\hdfs入门
- 搭建3个节点的hadoop集群(完全分布式部署)5 flume安装及flume导数据到hdfs
- hadoop+hbase+zookeeper 分布式集群搭建 + eclipse远程连接hdfs 完美运行
- Hadoop入门之集群搭建
- hadoop-HA集群搭建,启动DataNode,检测启动状态,执行HDFS命令,启动YARN,HDFS权限配置,C++客户端编程,常见错误
- [笔记]hadoop2.4.1分布式集群搭建入门/ha/zookeeper
- 大数据之hadoop伪集群搭建与MapReduce编程入门
- (Hadoop入门系列一)Hadoop集群搭建
- 入门级Hadoop集群搭建详细教程(六):yum本地仓库与远程仓库配置
- Hadoop-2.7.3集群(HA HDFS)搭建
- Hadoop2.6集群环境搭建(HDFS HA+YARN)原来4G内存也能任性一次.
- Hadoop-2.6.0下HDFS的集群HA的主备自动切换搭建
- hadoop1.2.1入门及集群搭建
- Hadoop基础入门以及Hadoop集群搭建
- hadoop学习第二天-了解HDFS的基本概念&&分布式集群的搭建&&HDFS基本命令的使用
- hadoop2.6.0入门及其集群搭建
- Spark入门 - 1 搭建Hadoop分布式集群
- Hadoop---在HDFS集群基础上搭建Map/Reduce集群
- hadoop+hbase+zookeeper 分布式集群搭建 + eclipse远程连接hdfs 完美运行
- Hadoop2.6集群环境搭建(HDFS HA+YARN)