hadoop配置
一、首先写两个实用的小脚本
1、执行命令 :xcall.sh ls
则可以在四台机器上循环执行命令 ls(首先需要支持ssh免密登陆)
#!/bin/bash params=$@ i=201 for (( i=201 ; i <= 204 ; i = $i + 1 )) ; do echo ============= s$i $params ============= ssh s$i "$params" done
2、可以使用命令xscp.sh /soft/download/
把download下的所有文件传到其他三台服务器对应目录下(首先需要支持ssh免密登陆)
#!/bin/bash if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi p=$1 #echo p=$p dir=`dirname $p` #echo dir=$dir filename=`basename $p` #echo filename=$filename cd $dir fullpath=`pwd -P .` #echo fullpath=$fullpath user=`whoami` for (( i = 202 ; i <= 204 ; i = $i + 1 )) ; do echo ======= s$i ======= rsync -lr $p ${user}@s$i:$fullpath done ;
二、了解hadoop基本配置文件
找到所有的配置文件
----------------------
1.tar开hadoop-2.7.3.tar.gz
hadoop-2.7.3sharehadoopcommonhadoop-common-2.7.3.jarcore-default.xml
hadoop-2.7.3sharehadoophdfshadoop-hdfs-2.7.3.jarhdfs-default.xml
hadoop-2.7.3sharehadoopmapreducehadoop-mapreduce-client-core-2.7.3.jarmapred-default.xml
hadoop-2.7.3sharehadoopyarnhadoop-yarn-common-2.7.3.jaryarn-site.xml
配置hadoop临时目录
---------------------
1.配置[core-site.xml]文件
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://s201/</value> </property> <!--- 配置新的本地目录 --> <property> <name>hadoop.tmp.dir</name> <value>/home/centos/hadoop</value> </property> </configuration>
//以下属性均由hadoop.tmp.dir决定,在hdfs-site.xml文件中配置。
dfs.namenode.name.dir=file://${hadoop.tmp.dir}/dfs/name dfs.datanode.data.dir=file://${hadoop.tmp.dir}/dfs/data dfs.datanode.data.dir=file://${hadoop.tmp.dir}/dfs/data dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary
2.分发core-site.xml文件
$>xscp.sh core-site.xml
3.格式化文件系统,只对namenode的本地目录进行初始化。
$>hadoop namenode -format //hdfs namenode -format
4.启动hadoop
$>start-all.sh
配置hadoop的最小blocksize,必须是512的倍数。 ------------------------------------------- [hdfs-site.xml] dfs.namenode.fs-limits.min-block-size=1024 write,进行校验,512进行一次教研。 单独配置辅助名称节点 --------------------- [hdfs-site.xml] dfs.namenode.secondary.http-address=s206:50090 使用oiv命令查询hadoop镜像文件 ------------------------------ hdfs oiv -i fsimage -o a.xml -p XML //查看镜像文件。 hdfs dfsadmin管理命令 ---------------------- $>hdfs dfsadmin //查看帮助 $>hdfs dfsadmin -help rollEdits //查看指定命令的帮助 $>hdfs dfsadmin -rollEdits //滚动编辑日志 启动hdfs时,镜像文件编辑日志进行融合,编辑日志滚动。 查看hdfs是否在安全模式 ------------------------ $>hdfs dfsadmin -safemode enter //进入 $>hdfs dfsadmin -safemode get //查看 $>hdfs dfsadmin -safemode leave //退出 $>hdfs dfsadmin -safemode wait //等待 hadoop -------------------- $>hadoop fs //hdfs dfs $>hadoop checknative //检查压缩库本地安装情况 $>hadoop namenode -format //格式化名称 hdfs管理命令 -------------------- hdfs dfsadmin // 保存名字空间,需要进入安全模式 -------------------------------- $>hdfs dfsamdin -saveNamespace hadoop启动命令 ------------------ $>start-all.sh //start-dfs.sh + start-yarn.sh $>start-dfs.sh //hadoop-daemon.sh start namenode //hadoop-daemons.sh start datanode $>start-yarn.sh //yarn-daemon.sh start resourcemanager //yarn-daemons.sh start nodemanager 配额管理(quota) ------------------- [目录配额] 计算目录下的所有文件的总个数。如果1,表示空目录。 $>hdfs dfsadmin -setQuota 1 dir1 dir2 //设置目录配额 $>hdfs dfsadmin -clrQuota 1 dir1 dir2 //清除配额管理 [空间配额] 计算目录下的所有文件的总大小.包括副本数. 空间配置至少消耗384M的空间大小(目录本身会占用384M的空间)。 $>hdfs dfsadmin -setSpaceQuota 3 data $>echo -n a > k.txt $>hdfs dfs -put k.txt data2 $>hdfs dfsadmin -clrSpaceQuota dir1 //清除配额管理 快照管理 -------------------- 1.描述 迅速对文件(夹)进行备份。不产生新文件,使用差值存储。 默认是禁用快照,先启用。 2.命令 $>hdfs dfsadmin -allowSnapShot dir1 //在dir1启用快照 $>hdfs dfsadmin -disallowSnapShot dir1 //在dir1启用快照 $>hdfs dfs -createSnapshot dir ss1 //创建快照 $>hdfs dfs -renameSnapshot dir ss1 ss2 //重命名 $>hdfs dfs -deleteSnapshot dir ss1 //删除快照
在window上运行hadoop的mapReduce程序,如果报以下错误:
java.io.IOException: (null) entry in command string: null chmod 0700 E:d...
可以通过以下方法解决
解决方法: 1.下载hadoop.dll文件 2.并拷贝到c:windowssystem32目录中 3.重新运行代码程序即可