hadoop常用命令汇总(下)

简介: hadoop常用命令汇总(下)

3.配置hdfs-site.xml文件



  修改hadoop中的hdfs的配置,配置的备份方式默认是3


 

<configuration>
   <property>
       <name>dfs.replication</name>
        <value>1</value>
        (备注:replication 是数据副本数量,默认为3,salve少于3台就会报错)
   </property>
<configuration>


4.配置mapred-site.xml文件



    修改hadoop中mapreduce的配置文件,配置的jobTracker的地址和端口


<configuration>
   <property>
       <name>mapred.job.tracker</name>
        <value>http://192.168.1.2:9001</value>
   </property>
</configuration>


5.配置masters文件


修改/usr/Hadoop/conf/masters文件,指定master机器的主机名

vi   /usr/Hadoop/conf/masters
        192.168.1.2(或者是master)



6.配置slaves文件


vi  /usr/Hadoop/conf/slaves
       slave1
       slave2

注意:单机启动的时候,conf/slaves中一定不能为空。没有其他机器,就指定自己。


集群环境下,slave机器上可以不配置slaves


7.在集群中的其他机器上重复此配置


    建议在普通用户hadoop下通过scp复制到其他机器的对应目录下。


    其中第6步是master机器上特有的


使用shell脚本:


for  i  in  $(seq1  100);
   do  echo   slave$i;
   scp  /usr/hadoop   Hadoop@slave$i: /usr;
   scp /etc/profile  Hadoop@slave$i:/etc; 
    done


   复制文件后可能会发现hadoop目录是root权限


chown -R   hadoop:Hadoop   Hadoop

      授权给hadoop用户


Hadoop启动相关命令:

Hadoop  namenode -format

   在master机器上格式化namenode


                只需要执行一次,如果要重新执行,一定要先删掉配置文件core-site.xml中配置的hadoop.tmp.dir对应路径下的文件



 service   iptables stop     关闭集群中所有机器防火墙


 

For  iin  (seq  1  100 );
               Do    ssh node$i  “hostname;
service  iptable stop;
               chkconfig    iptables  off;
               service  iptables  status
”; done


start-all.sh              启动hadoop的所有服务,包含(hdfs和mapreduce的相关服务)



 可以通过以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,…,然后启动secondarynamenode。再启动jobtracker,然后启动tasktracker1,tasktracker2,…。


 启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。



jps       查看进程


   在master上的结果是:


 

jobTracker
       NameNode
       jps
       SecondaryNameNode

在slave上的结果是:


 

TaskTracker
    DataNode
    jps


Hadoop   dfsadmin   -report    查看hadoop集群的状态


Hadoop   dfsadmin  -safemode leave     关闭hdfs的安全模式



http:192.168.1.2:50030     访问mapreduce对应网页


http:192.168.1.2:50070     访问hdfs的对应网页


服务一直启动不了的终极解决办法:


1.删除集群中所有机器上的/usr/Hadoop/tmp文件


2.删除集群中所有机器上的pid文件。默认存放在/tmp目录下。这里我重新设置到了/bigdata/hadoop/pids,记得要授权给hadoop用户


3.重新执行stop-all.sh,把能关的服务先都关掉。


4.执行ps -ef | grep java| grep hadoop命令,查询是否还有hadoop相关进程才运行,如果有,执行kill -9  进程号    命令杀掉


5.重新格式化主机master


Hadoopnamenode  -format


6.执行start-all.sh启动hadoop


7.发现没有报错,执行 Hadoopdfsadmin –report 命令查看hadoop运行状态


出现如图所示:


发现只启动了一个节点。可能是还存在安全模式。



8.执行hadoop dfsadmin –safemodeleave,关闭主机上的安全模式




9.再次执行hadoop dfsadmin –report



解决“no   datanode to  stop”问题?


原因:


每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空tmp一下的所有目录。


第一种方法:


删除master上的tmp文件夹


 rm  -rf  /usr/Hadoop/tmp


创建/usr/Hadoop/tmp文件夹


  mkdir  /usr/Hadoop/tmp


删除“/tmp”一下的“hadoop”开头文件


  rm  -rf  /tmp/Hadoop*


重新格式化hadoop的master


  Hadoop  namenode -format


启动hadoop


  start-all.sh



使用第一种方案,有种不好处就是原来集群上的重要数据全没有了。假如说Hadoop集群已经运行了一段时间。建议采用第二种。



第二种方法:(推荐)


1)修改每个Slave的namespaceID使其与Master的namespaceID一致。


 或者


2)修改Master的namespaceID使其与Slave的namespaceID一致。


 该"namespaceID"位于"/usr/hadoop/tmp/dfs/data/current/VERSION"文件中,前面蓝色的可能根据实际情况变化,但后面红色是不变的。



建议采用第二种,这样方便快捷,而且还能防止误删。


解决Exceeded   MAX_FAILED_UNIQUE_FETCHES问题


出现错误如下:

Shuffle Error: ExceededMAX_FAILED_UNIQUE_FETCHES; bailing-out


 程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。


执行ulimit  -a    查看文件限制数量

vim   /etc/security/limits.conf


       添加:

soft   nofile  102400
      soft  nofile  409600  
vim  /etc/pam.d/login

添加:

session  required /lib/security/pam_limits.so


目录
相关文章
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
161 0
|
5月前
|
存储 分布式计算 Hadoop
aws s3常用命令、hdfs dfs/hadoop fs常用命令
aws s3常用命令、hdfs dfs/hadoop fs常用命令
396 0
|
4月前
|
存储 分布式计算 资源调度
❤️hadoop常用命令总结及百万调优❤️
❤️hadoop常用命令总结及百万调优❤️
49 0
|
6天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
18 5
|
4月前
|
分布式计算 资源调度 Hadoop
从一个简单的命令阅读hadoop源码(下)
从一个简单的命令阅读hadoop源码(下)
28 0
|
4月前
|
分布式计算 资源调度 Hadoop
从一个简单的命令阅读hadoop源码(上)
从一个简单的命令阅读hadoop源码
35 0
|
5月前
|
分布式计算 资源调度 监控
百度搜索:蓝易云【Hadoop常用命令。】
这些是Hadoop中常用的一些命令,用于管理和操作HDFS、MapReduce作业以及集群资源。使用这些命令可以有效地管理和处理大规模的数据集。
46 0
|
8月前
|
分布式计算 Hadoop Linux
Linux重启Hadoop集群命令
Linux重启Hadoop集群命令
174 0
|
11月前
|
存储 分布式计算 Hadoop
Hadoop基础命令的使用
Hadoop基础命令的使用
|
11月前
|
分布式计算 安全 Hadoop

相关实验场景

更多