好程序员大数据培训分享hadoop的知识总结,Hadoop的背景:原生公司是apache, cdh的cloudar公司,hortworks公司提供hdp。
其中apache的发行版本大致有1.x ,2.x,和3.x
1、由于海量数据的诞生,同时没有海量数据的存储和处理。来源google公司的gfs,mapreduce ,bigdata。
2、Hadoop的创始人是Doug cutting(据官网说,是他孩子当时玩的玩具是大象)
3、代码起源luence ----->nutch(mapreduce,ndfs)到hadoop
Hadoop1.x和2.x,3.x的区别是:
1、x和2.x最大的区别是2.x将资源管理单独提取出来使用yarn模块。2.x和3.x区别差不多。
大数据的应用:日志采集,推荐。
hadoop官方的对hadoop的解释:
The Apache? Hadoop? project develops open-source software for reliable, scalable, distributed computing.
hadoop框架允许使用简单模型来分布式处理集群中海量数据集
hadoop框架设计从单台服务器扩展成千上万台服务器,每一个都能提供本地的存储和计算。
hadoop框架设计本身就可以检测和处理应用层的失败(容错),而不是依赖硬件,因为集群中每一个都有可能失败。
hadoop包括四个模块:
common : 通用工具类支持其他hadoop的模块
hdfs (hadoop distribut file system): hadoop是分布式文件系统,提供高吞吐来处理应用数据
yarn : 作业调度和资源管理的框架
mapredcue : 基于yarn来并行处理海量数据集的系统
Hadoop分为单机版,伪分布式,全分布式。
单机版运行在单个jvm中,经常用于debug
伪分布式是运行在单机上多个虚拟机上的。
全分布式就是hadoop,运行在成千上万的集群上的。
集群的搭建需要先安装jdk,配置环境变量。
把hadoop解压安装到/usr/local下,
tar -zxvf /homo/hadoop-2.9.1.tar.gz -C /usr/local
Bin:操作hdfs 和mapreduce的可执行命令
Sbin:启停hadoop相关服务的可执行命令
Etc:hadoop相关配置文件目录
Lib ,libexec:相关执行或扩展库
Share:源码,文档和测试案例
然后配置环境变量。
Vi /etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.7.1/
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
Source /etc/profile //使配置生效
vi ./etc/hadoop/hadoop-env.sh 告诉hadoop的jdk目录
export JAVA_HOME=/usr/local/jdk1.8.0_152/
配置ssh免密登录:在hadoop上免密登录到其他的机器上。
1、在hadoop01上生成公司密钥对().
ssh-keygen -t rsa
2、将hadoop01的公钥拷贝到想免登陆的服务器中(hadoop02).
ssh-copy-id hadoop02
3、hadoop01给hadoop02发出请求信息,hadoop02接到去authorithd_keys找对应的ip和用户名,
能找到则用其对应公钥加密一个随机字符串(找不到则输入密码),然后将加密的随机字符串返回给hadoop01,hadoop01
接到加密后的字符然后用自己的私钥解密,然后再发给HAdoop02,hadoop02判断和加密之前的是否一样,
一样则通过登录,如果不一样则拒绝。
如果window中用私钥登录。需要从登录服务器中拉去对应用户的私钥(服务器中用户的家目录下的.ssh下的id_rsa)
放到windon中的某个目录,然后使用xshell进行私钥登录。
安装Zookeeper:
zookeeper安装:
1、上传并解压
tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local
vi /etc/profile
source /etc/profile
2、配置zookeeper的配置文件
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/usr/local/zookeeper-3.4.10/zkdata
#Add
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
3、创建数据目录zkdata
4、在zkdata下生成myid文件
5、分发zookeeper
scp -r zookeeper-3.4.10 root@hadoop02:$PWD
scp -r zookeeper-3.4.10 root@hadoop03:$PWD
6、到hadoop02、03机器上分别修改myid号
7、启动zookeeper进程
$ZOOKEEPER_HOME/bin/zkServer.sh start
$ZOOKEEPER_HOME/bin/zkServer.sh status
8、配置zookeeper的环境变量
vi $ZOOKEEER_HOME/bin/zkEnv.sh
9、客户端的测试
bin/zkCli.sh
help
在机器上规划模块的分配
hadoop01 192.168.137.81 datanode nodemanager zookeeper qjounalnode namenode resourcemanager zkfc
hadoop02 192.168.137.82 datanode nodemanager zookeeper qjounalnode namenode resourcemanager zkfc
hadoop03 192.168.137.83 datanode nodemanager zookeeper qjounalnode
然后配置hdfs-site,xml文件,core-site.xml 和yarn.xml,mapreduce-site.xml文件。
启动命令:start-all.sh 全启动(是启动hdfs和yarn的模块的所有服务)
停止命令:stop-all.sh 全停止(停止hdfs和yarn的模块的所有服务)
Start-dfs.sh hdfs的模块启动
Stop-dfs.sh hdfs的模块的停止
启动命令:start-all.sh 全启动(是启动hdfs和yarn的模块的所有服务)
停止命令:stop-all.sh 全停止(停止hdfs和yarn的模块的所有服务)
Start-dfs.sh hdfs的模块启动
Stop-dfs.sh hdfs的模块的停止
Start-yarn.sh yarn的模块启动
Stop-yarn.sh yarn的模块的停止
单个启动:
hadoop-daemon.sh start/stop namenode :启动单个namenode
hadoop-daemons.sh start/stop namenode :启动多个namenode
hadoop-daemon.sh start/stop datanode :启动单个datanode
hadoop-daemons.sh start/stop datanode :启动多个datanode
hadoop-daemon.sh start/stop secondarynamenode :启动单个secondarynamenode
hadoop-daemons.sh start/stop secondarynamenode :启动多个secondarynamenode
yarn-daemon.sh start/stop resourcemanager
如果是第一次启动集群的话,一定要严格遵循一下流程:
1、启动zookeeper集群(自己实现一个批量启动zk的脚本)
2、启动qjounalnode(在3台机器上都要启动)
/usr/local/hadoop-2.7.1/sbin/hadoop-daemon.sh start journalnode
3、格式化hdfs
hdfs namenode -format
4、单机启动namenode
hadoop-daemon.sh start namenode
5、数据同步
1、scp -r /usr/local/hadoopdata/dfs /
2、hdfs namenode -bootstrapStandby (在hadoop02上进行数据同步,就是把namenode复制到第二台机器上去)
6、格式化zkfc
hdfs zkfc -formatZK
7、启动hdfs集群
start-dfs.sh
8、启动yarn集群
start-yarn.sh
这样集群就搭建好了。(注意配置文件的注释不要写错没有空格)
好程序员大数据培训:http://www.goodprogrammer.org/
网友评论