一、pid
1、pid 默认放在/tmp目录下,pid内容为jps的进程号。
2、删除进程,一般不会通过ps -ef|grep hadoop来删除,因为进程号不只是PID,还会出现别的进程号,可能会误杀别的进程
(1)查看停止hdfs的脚本内容
执行的是hadoop-daemons.sh脚本停止
(2)查看hadoop-daemons.sh脚本
执行的是hadoop-daemon.sh文件
(3)查看hadoop-daemon.sh脚本并且筛选是否停止脚本包含pid。
是包含的。脚本通过找到pid(这里是可以通过配置环境变量修改路径,默认配置在/tmp目录下。找pid是通过$来找路径),然后kill掉来达到停止hadoop运作的目的。
3、删除pid,进程会挂吗?能够提供服务吗?
进程不挂,服务正常。
4、生产上:
pid绝对不能放到/tmp目录,因为/tmp文件夹一个月自动清理一次(默认)
如果清理掉了pid文件,就手动kill -9 进程号来关闭,再重启。
# The directory where pid files are stored. /tmp by default.(默认)
# NOTE: this should be set to a directory that can only be written to by
# the user that will run the hadoop daemons. Otherwise there is the
# potential for a symlink attack.
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
创建存放hadoopPid文件的文件夹:
mkdir /data/hadoop/tmp
chmod -R 777 /data/hadoop/tmp
export HADOOP_PID_DIR=/data/hadoop/tmp
5、hadoop命令
(1)hadoop fs = hdfs dfs
hdfs dfs + linux命令
[-put [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
[-get [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
等于
[-copyFromLocal [-f] [-p] [-l] [-d] <localsrc> ... <dst>]
[-copyToLocal [-f] [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
(2)hadoop version:查看hadoop版本
(3)hadoop jar
执行一个jar包
(4)hadoop checknative
检查你的hdfs上面支持有哪些压缩
(5)hadoop classpath
检查jar包是否成功加载,打印的路径有,就是成功加载,否则要重新加载。
如何重新加载?
----查看hadoop-env.sh脚本
cat hadoop-env.sh
hadoop系统jar包存放在$HADOOP_HOME/contrib/ca[acity-scheduler/*.jar下
如何新增jar包覆盖的话,在hadoop-env.sh中修改:
done后面加下述语句:
export HADOOP_CLASSPATH=/xxx/xxx.jar:$HADOOP_CLASSPATH
6、hdfs命令
(1)hdfs namenode -format
格式化DFS文件系统
(2)hdfs dfsadmin +
例如:hdfs dfsadmin -report
(3)hdfs fsck
查看数据块的状况
(4)hdfs dfs
重点掌握
7、垃圾箱
(1)没配置垃圾回收前删除hdfs里的文件
hdfs dfs -rm /test123.log
(2)打开core-site.xml
复制黏贴:
<property>
<!--多长时间创建CheckPoint NameNode截点上运行的CheckPointer 从Current文件夹创建CheckPoint;默认:0 由fs.trash.interval项指定 -->
<name>fs.trash.checkpoint.interval</name>
<value>0</value>
</property>
<property>
<!--多少分钟.Trash下的CheckPoint目录会被删除,该配置服务器设置优先级大于客户端,默认:0 不删除 -->
<name>fs.trash.interval</name>
<value>1440</value>
</property>
(3)重启
(4)删除hdfs里的文件
hdfs dfs -rm /HBinz1.log
注意!!!:
如果出现说由于在安全模式无法移动到垃圾箱,就退出安全模式。否则别退出。
hdfs dfsadmin safemode
(5)如果是误删,就移动回来
已经没有了HBinz1.log文件
分析:
看报错:
fs.TrashPolicyDefault: Moved: 'hdfs://192.168.137.130:9000/HBinz1.log' to trash at: hdfs://192.168.137.130:9000/user/HBinz/.Trash/Current/HBinz1.log
移动到了/user/HBinz/.Trash/Current/HBinz1.log这个目录下
所以如果是误删可以通过移动回来来恢复:
hdfs dfs -mv /user/HBinz/.Trash/Current/HBinz1.log /
(6)垃圾箱的官方文档解释
(7)配置了垃圾箱也可以跳过垃圾箱删除文件
hdfs dfs -rm -skiptrash /HBinz1.log