hadoop 02一 hadoop配置

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.重新运行代码程序即可
原文地址:https://www.cnblogs.com/pinghengxing/p/12050402.html