Hadoop

来源:互联网 发布:有哪些很污的淘宝店铺 编辑:程序博客网 时间:2024/06/06 09:05

1.第一步:检查有无安装hadoop的服务
ps -ef | grep hadoop
find / -name hadoop
使用tar进行解压操作的时候,解压成功文件会变动用户和用户组的额
chown -R root:root
rpm -qa | grep java
查看用户在不在的,用id 用户进行查看的额,
linux zip 解压
mvn 命令
du -sh 查看文件的大小
ll -h 查看文件大小
cat /etc/passwd | grep
chown -R root:root
linux 软连接 硬链接
hdfs namenode -format 格式化
bin/hdfs getconf -namenodes

      0.0.0.0代表当前设备的IP的地址      dfs.blocksize=128M      dfs.replication=3     主namenode  名称节点 命名空间         namenode 维护的是文件名称  文件目录结构   文件的属性   权限,创建时间和副本数    文件对应的哪些数据块,数据块对应的哪些                机器节点上     本身这些信息是不存在namenode上的,namenode上是不存在这些映射关系的,是datanode定期发送给namenode的      namenode的数据是存放在内存中的,目录信息是由Datanode定期来报告的,维护目录信息      namenode万一挂掉的话,那么数据目录结构就会丢失的,只能通过Datanode来定期的报告的   datanode是数据节点   存放数据的,  数据块block的,  数据块校验和    datanode与namenode通信,是每隔3秒发送一个心跳包的,每隔10个心跳包发送一次blockreport的。     SecondaryNameNode是1小时去namenode上获取fsimage和editlog的,合并成fsimage.ckpt,推送给namenode   目录/tmp/hadoop-hadoop/dfs/name/current记录实时的fsimage和editlog的日志的   NameNode的进程挂了,文件路径还在的话可以通过重启NameNode来恢复的  NameNode机器挂了,文件路径不存在了(即是文件损坏,磁盘损坏),可以通过secondaryNameNode的fsimage来恢复NameNode的,  力度是在一个小时之内的   2.副本放置策略   第一副本:防置在上传文件的DataNode上的,如果是集群外提交的,则会随便挑选一台磁盘不太慢的,cpu不太忙的节点上的   第二副本:防置在第一个副本不同的机架的节点上的   第三副本:与第二副本相同机架的不同节点上的   如果还有更多的副本,则会随机的放置在节点中的   ./hadoop-daemon.sh  start  namenode   jps -l  输出命令空间   jps  -m  cd  /tmp/hsperfdata_hadoop中的文件名称就是进程号的,当进程异常的中断时候,要及时地去清理/tmp/hdperfdata_hadoop里面的文    件的,否则jps中会出现很多残留的文件的  hadoop  fs  -ls   /   ====   hadoop  fs   -ls  hdfs://192.168.137.131:9000/  3.hdfs的写流程  hadoop  fs  -put  jepson.log   /   客户端调用FileSystem来通过rpc协议来进行通信NameNode的,检查HDFS上的文件是否存在的,是否是有权限的验证的,  NameNode返回一个ok的状态的,返回一个FSDataOutputStream的对象的,  Client调用FileSystem.create(filePath)方法,去与NameNode进行RPC通信的,check该路径下的文件是否存在以及有没有权限创建该文件        的,假如OK的话,就创建一个新文件的,但是并不关联任何block的,返回一个FSDataOutputStream对象的,假如not  ok,就该返回错        误信息,所以写代码要try-catch的 Client调用FSDataOutputStream对象的write()方法,会将第一个块写入第一个DataNode上的额,第一个DataNode写完传给第二个节点           的,第二个写完传给第三个节点的,当第三个节点写完返回一个ack packet给第二个节点,第二个返回一个ack  packet给第一个节点,         第一个节点返回ack  packet给FSDataOutputStream对象的,意思标识第一个块写完的,副本数为3;然后剩余的块依次这样写的: 当然写操作对于Client端是透明的, 当向文件写入数据完成后,Client端调用FSDataOutputStream.close()方法,关闭输出流的额,flush缓存区的数据包 再调用FileSystem.complete()方法,告诉NameNod节点写入成功的, 4.hdfs的读流程  hadoop   fs    -cat   /jepson.log  HDFSClient客户端进行一个操作命令,   Client调用FileSystem.open()的方法,去与NameNode进行RPC通信的,进行check的判断,是否有权限是否该文件存在,返回该文件的          block以及DataNode的部分地址列表的,block块分布在哪些机器上的以及DataNode的地址列表的  返回一个FSDataInputStream的对象的,  Client调用FSDataInputStream的read方法进行读操作的,就近原则进行读取的额,check块有        无损坏的额,  通过jps来查看进程的额,其各自的进程会对应一个pid文件的,目录在/tmp下的后缀为pid的文件的  pid文件存在的形式:1是进程是ok的,2是进程死掉了,pid文件残留的,下次启动服务时候,报pid存在的,需要手工删除的(Mysql也有        类似的问题的)      pid文件中存在进程号的  hadoop  fs等价于hdfs  dfs    hdfs    dfsadmin   -report     用于管理的,报告磁盘的情况  hdfs    dfsadmin   -safemode   enter|leave  |get | wait  hdfs    dfsadmin   -setBalancerBandWidth   1000  hdfs    fsck    start-balancer.sh
原创粉丝点击