设为首页 收藏本站
查看: 1100|回复: 0

[经验分享] hadoop第一天

[复制链接]

尚未签到

发表于 2018-10-29 12:52:00 | 显示全部楼层 |阅读模式
  名称节点不会存放数据块的,可以存但是不会这么做。namenode目录挂了,单点故障
  namenode
  secondarynamenode  备份,防止单点故障就完了,最重要的还是这目录,这叫做镜像
  datenode  datenode  datenode  3个
  分布式
  --------------
  由分布在不同主机上的程序(进程)协同在一起才能构成整个应用。
  browser/web server:瘦客户端程序。
  4V
  ----------------
  1.volumn: 体量大
  2.velocity: 速度快
  3.variaty: 样式多
  4.value: 价值密度低
  hadoop
  --------------
  可靠地、可伸缩的、分布式计算的开源软件。
  是一个框架,允许跨越计算机集群的大数据集分布式化处理,使用简单的编程模型(MapReduce)。
  可从单个服务器扩展到几千台主机,每个节点提供了计算和存储功能。
  不依赖于硬件处理HA,在应用层面上实现。
  hadoop模块----解决了两个问题,存储和计算
  -----------
  1.hadoop common//公共类库,支持其他模块
  2.HDFS//hadoop distributed file sytsem,hadoop分布式文件系统
  3.Hadoop YARN//Yeah another resource ,作业调度和资源管理的框架。
  4.Hadoop MapReduce//基于yarn系统的大数据集并行处理技术。
  liunx
  jps
  jps -v
  which jps
  which xxx//在PATH查看指令xxx的目录
  whereisxxx//查询命令的binary、Source、manual   查找这个指令相关的二进制指令和文件
  hadoop安装
  配置用到的书 Hadoop.The.Definitive.Guide.4th 在Appendix A.Installing ...里面有讲到site.xml配置
  ---------------
  1.jdk
  JAVA_HOME
  PATH
  2.tar hadoop.tar.gz
  3.配置环境变量
  HADOOP_HOME------------HADOOP_HOME=/soft/hadoop
  PATH     --------------- /soft/hadoop/bin:/soft/hadoop/sbin  ----这样配好就是独立模式了
  4.配置hadoop---配置的时候有3种模式
  1.standalone | local    --------------独立模式,或者叫本地模式
  a.没有守护进程,所有程序运行在同一JVM中,利于test和debug.容易测试和调试
  b.查看文件系统
  $>hadoop fs -ls ///查看就是本地文件系统
  2.Pseudo distributed Mode//伪分布模式,模拟完全分布式,是完全分布式的特列
  [配置文件${hadoop_home}/etc/hadoop/*-site.xml]
  [core-site.xml]
  
  
  fs.defaultFS
  
  hdfs://localhost/
  
  
  完全分布式另外两个副本在同一个机架上,加自己一共3个副本的----伪分布是配置1
  [hdfs-site.xml]
  dfs.replication=1
  [mapred-site.xml]
  mapreduce.framework.name=yarn
  [yarn-site.xml]
  yarn.resourcemanager.hostname=localhost
  yarn.nodemanager.aux-services=mapreduce_shuffle
  gedit编辑后会产生备份文件,图形软件打开文字后的首选项里面吧创建一个备份拷贝给拿掉edit-editor
  ls -al |grep site.xml
  删除之前生成的备份文件rm -f *~^C
  3.[配置SSH]---在nanmenode节点上远程登录其他主机把任务启动起来,登录密码太麻烦,配置无密码登录
  ps -Af|grep ssh  看看有没有安装运行的进程sshd 安装完后的服务端    ,which ssh 查看客户端
  1.安装ssh软件
  $>sudo apt-get install ssh//安装服务端(sshd)和客户端(ssh)以及相关软件(ssh-keygen).
  2.生成密钥对rsa是算法 ''无秘      -f指定目录    用户的主目录
  $>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  有id_rsa.pub的那个是公钥
  3.追加公钥到对方的认证库中。还有ssh连上其他电脑  不需要sudo哦
  cat输出这个内容   >>追加  可以追加很多人的秘钥
  $>cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  4.测试ssh到localhost
  $>ssh localhost
  4.格式化hdfs文件系统   ---Hadoop.The.Definitive.Guide.4th 在Appendix A.Installing  --configuration---pseudodist
  自己格式化的时候报错了,把hostname改为原来的ubutnu后重启就正常了
  #>hdfs namenode -format// hadoop/bin/hdfs
  5.启动hdfs和yarn守护进程
  $>start-dfs.sh
  $>start-yarn.sh
  mr-jobhistory-daemon.sh  start historyserver  这个也要起,先不用,先不起
  或者start-all.sh就等于这上面两个(貌似用这个开会少一个进程)----开启后开  jps看是否有5个对应的守护进程(第二次启动电脑后启动程序就少个namenode,格式化hdfs后重启就又有了,不知道为什么)
  $>stop-yarn.sh// hadoop/sbin/ 停止进程 ----和开启的顺序相反,按照上层的顺序
  $>stop-yarn.sh
  mr-jobhistory-daemon.sh stop historyserver   这个也要起,先不用,先不起
  stop-all.sh已经过时了,推荐用上面的
  DataNode
  NameNode
  SecondaryNameNode 文件系统
  ResourceManager 名称管理器     yarn调度框架
  NodeManager节点管理器
  6.配置目录的指定方式-(start-yarn.sh,start-dfs.sh用到这个)--------想用哪种把哪种链接指向一个hadoop  比如 ln -s hadoop_pseudo hadoop(这样不会覆盖的,第二次要链接其他的先把他删除)直接改链接更方便
  切花为local的话,hdoop fs -ls -R / 这样看的就是本地的文件系统了
  a.默认方式
  ${hadoop_home}/etc/hadoop/*.xml    //默认的,有点时候做多种配置
  b.通过启动参数指定配置目录
  $.start-dfs.sh --config /soft/hadoop/etc/hadoop command//  hadoop/sbin
  c.通过设置环境变量HADOOP_CONF_DIR
  $>export HADOOP_CONF_DIR=/soft/hadoop/etc/hadoop_pseudo
  把这个环境变量干掉 export HADOOP_CONF_DIR 直接这样
  然后export HADOOP_CONF_DIR=
  hdfs namenode -format格式化的时候也有提到相关的配置
  用法实列
  把/soft/hadoop/etc/hadoop改为/soft/hadoop/etc/hadoop_pseudo,这样直接启动就启动不了,用到下面配置目录的指定方式了
  start-all.sh --config /soft/hadoop/etc/hadoop_pseudo
  拷贝文件夹  cp -r hadoop_pseduo hadoop_local  要加-r
  7.目录操作
  hadoop fs -mkdir -p /user/$USER  ---------------------主目录,用这个,这样hadoop fs -ls 就会看到主目录去
  $>hadoop fs -mkdir -p /user/ubuntu//创建目录 -p 多级目录
  $>hadoop fs -ls ///显示根目录  -------要那5个守护进程启动起来哦----那个 / 是需要的哦
  $>hadoop fs -ls /user/ubuntu/a//显示指定的目录
  $>hadoop fs -ls -R///递归显示目录结构 ,目录,在namenode上,文件的话真正存储的地方还是在datanode上
  $>hadoop fs -lsr///同上,不过不推荐使用了
  hadoop fs -ls -R hdfs://localhost/  最后有个/的哦,和上面一下看hadoop的文件系统
  hadoop fs -ls -R file:/             访问本地的文件系统
  /tmp/hadoop-ubuntu/dfs/name/current   格式化的时候目录就已经创建了, name----对应的就就是名称节点  可以看cat VERSION
  /tmp/hadoop-ubuntu/dfs/data/current   对应datanode   可以看cat VERSION     /tmp/hadoop-ubuntu/dfs/data/current/BP-1334148266-127.0.1.1-1465945525779/current/finalized
  8.查看帮助
  $>hadoop fs//直接回车
  $>hadoop fs -help put//查看put的具体信息
  echo "hello world">>hello.txt 创一个文件放到hdfs文件上去
  $>hadoop fs -put local.txt /user/ubuntu/xx.txthadoop fs -put hello.txt /user/ubuntu/  第二个老师用的是//将本地文件put到hdfs文件系统。.
  下载的话就把put改成get
  这个是临时目录,第二次启动就是被干掉的,每次开机都要重新格式化的
  cd /tmp/hadoop-ubuntu/dfs/data/current/BP-1334148266-127.0.1.1-1465945525779/current/finalized/subdir0/subdir0 后就有块blk_1073741825和元数据描述了blk_1073741825_1001.meta
  9.查看namenode和datanode在本地
  $>cd /tmp/ubuntu-hadoop/dfs/name/...
  $>cd /tmp/ubuntu-hadoop/dfs/data/...
  10.查看log文件----------这个才是最重要的,以后可能会出现很多错误,都在log里面找---出现错误时会提示让他哪个文件下找错误内容
  $>${hadoop_home}/logs
  11.也可以通过webui查看日志或者集群情况
  http://localhost:50070///namenode web server port 查看namenode的日志  外面的要访问他http://192.168.2.112:50070   datanodes 加s就是数据节点集 用的是网络编程逃不了的
  http://localhost:8088///resourceManager,看的是资源管理器的情况。只有在本机访问才可以。hadoop集群信息- 查出来前面4个0就可以其他地方输入ip端口访问。如果是127.0.0...绑定的就只能本机访问
  mr作业提交的时候就是一个应用程序Applications,在这个端口里面看
  http://localhost:19888///historyServer,历史服务器的情况
  12.通过netstat查看网络端口占用情况
  $>netstat -lupt//l:listener u:udp t:tcp p:program name   查出来前面4个0就可以其他地方输入ip端口访问。如果是127.0.0...绑定的就只能本机访问
  文件有副本,目录没副本,一块是128m
  有提到nat和桥接模式链接访问别人的hdfs问题,就提到一下005的35分钟左右几秒
  搭建完全分布式hadoop集群------------------pdf第10章的内容  Setting Up a Hadoop Cluster
  -------------------------
  1.安装java
  2.创建user
  略
  3.安装hadoop
  略
  4.配置SSH
  略
  5.格式化
  略
  6.启动进程
  start-dfs.sh | start-yarn.sh
  7.创建目录
  8.配置hadoop
  nat是自动分配ip的
  a.克隆虚拟机4台
  b.ssh,配ip麻烦,配主机名好一点1.克隆后改主机名称   su  -------nano /etc/hostname 改完后重启
  或su root ; echo "s200" > /etc/hostname------老师是分别登录每台机器里面去改的
  2.传送ssh的免密公钥给其他主机,ip要看一下,貌似每次重启ip都会变

  scp>
  s200上的   ,authorized_keys是之前克隆其他机器的,处理一下   cat>  然后他又其他机器的那个目录里面的秘钥之类的都删除重写生成了
  ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

  然后在s100上把公钥发给s200  scp>  追加公钥到对方的认证库中authorized_keys。还有ssh连上其他电脑  不需要sudo哦

  到s200上  cat>  主机ssh其他机器的那个机器,配host映射 /etc/hosts  -------------
  192.168.238.128 s100  自己
  192.168.238.129 s200其他机器
  192.168.238.130 s300
  192.168.238.131 s400  这个ip不一定对,看实际的ip
  这台机器配好后,其他机器也要有相同的关系再把这个文件发给其他机器上去,远程复制
  scp --help
  切到root后,没试过是不是一定要这个
  远程复制
  scp root@s200:/etc/hosts root@s300:/etc/
  scp hosts root@s300:/etc/
  把远程机器的这个文件放到另外一台机器的etc下
  c.配置hadoop配置文件
  [core-site.xml]
  
  
  fs.defaultFS
  
  hdfs://namenode/  //本来是localhost---------现在是namenode,成ip或者主机名
  
  
  [hdfs-site.xml]
  dfs.replication=3
  [mapred-site.xml]
  mapreduce.framework.name=yarn
  [yarn-site.xml]
  yarn.resourcemanager.hostname=namenode
  yarn.nodemanager.aux-services=mapreduce_shuffle
  [slaves]  辅助,从属,主机列表,每个一行,-----------完全分布式下多了一个这个文件,也是在/soft/hadoop/etc/hadoop,伪分布里面有个数据节点以及节点管理器,由它决定。
  保证ping主机名和pinglocalhost相同,用nat模式这个一般不会变
  s200
  s300
  s400
  [/etc/hosts]
  d.远程复制/etc/hosts/到远程主机
  $>scp hosts root@s200:/etc/
  之前配置无秘登录时给ubuntu用户的,如果是复制hosts文件,ubuntu没有权限的,所以要手动输入对方主机的root密码,除非也给root也配置一个6


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-628025-1-1.html 上篇帖子: 【3】搭建HA高可用hadoop-2.3(部署配置hadoop--cdh5.1.0) 下篇帖子: spark VS Hadoop 两大大数据分析系统深度解读
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表