Hadoop的配置文件设置(非HDFS HA)

Hadoop 2.7.4 + HBase 1.2.6 + ZooKeeper 3.4.10 配置

本文为上述配置的一部分,为方便阅读,故设为独立页面

 

在linux中,通过下面命令hadoop

curl -O https://archive.apache.org/dist/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz

 

先将hadoop包解压到目录 : /home/mytestzk/hadoop-2.7.4

在hadoop目录下创建以下子目录:

  mkdir tmp
  mkdir hdfs
  mkdir hdfs/name
  mkdir hdfs/data

 

1:配置

hadoop 2.x的最大进步在于,引入了yarn,在这个系统中,mapreduce成为了它的一个组件,并且是可替换的组件,比如可以使用spark,所以配置的过程中,需要注意yarn的相关配置文件的使用,具体共有7配置文件:

  • hadoop-env.sh

该文件是hadoop运行基本环境的配置,需要修改的为java虚拟机的位置。

故在该文件中修改JAVA_HOME值为本机JDK安装位置,在hadoop2.7.4 中,改为 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151

  • yarn-env.sh

该文件是yarn框架运行环境的配置,同样需要修改java虚拟机的位置。

在该文件中修改JAVA_HOME值为本机安装位置,在hadoop2.7.4 中,可以看到已经有如下配置:

  • slaves

该文件里面保存所有slave节点的信息,我这里写的是ip (说明:slaves文件中可以写ip地址,也可以写成/etc/hosts里从机的主机名,任选一种即可)

slave1
slave2
  • core-site.xml

可参见帮助:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

这个是hadoop的核心配置文件,这里需要配置的主要两个属性,

fs.defaultFS配置了hadoop的HDFS系统的命名,位置为主机namenode的9000端口;

hadoop.tmp.dir配置了hadoop的tmp目录的根位置。需要新建一个tmp目录

<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
   </property>
   <property>
      <name>hadoop.tmp.dir</name>
      <value>/home/mytestzk/hadoop-2.7.4/tmp</value>
   </property>
</configuration>
  • hdfs-site.xml

可参见帮助:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

这个是hdfs的配置文件,dfs.namenode.name.dir配置namenode数据存放位置,dfs.datanode.data.dir配置datanode数据存放位置,

dfs.replication配置了文件块的副本数,一般不大于从机的个数。

<configuration>
    <property>
     <name>dfs.namenode.name.dir</name>
        <value>file:/home/mytestzk/hadoop-2.7.4/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/mytestzk/hadoop-2.7.4/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
</configuration>

 

  • mapred-site.xml

可参见帮助:http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

这个是mapreduce任务的配置,由于hadoop2.x使用了yarn框架,所以要实现分布式部署,必须在mapreduce.framework.name属性下配置为yarn。mapred.map.tasks和mapred.reduce.tasks分别为map和reduce的任务数,至于什么是map和reduce,可参考其它资料进行了解。

其它属性为一些进程的端口配置,均配在主机下。

<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>

 

  • yarn-site.xml

可参见帮助:http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

该文件为yarn框架的配置,主要是一些任务的启动位置

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

 

 

2:启动:

格式化(在master上执行):bin/hdfs namenode -format

启动HDFS(在master上执行):sbin/start-dfs.sh

 

3:检查启动结果:

查看集群状态:hdfs dfsadmin –report

查看文件块:hdfsfsck / -files -blocks

查看hdfs:http://master:50070(主机IP)

查看MapReduce:http://master:8088(主机IP)

运行jps查看进程:

HDFS

NameNode

DataNode

 

SecondaryNameNode

 

YARN

ResourceManager

NodeManager

 

4:测试:

创建linux 文件目录:                     mkdir ~/hadoopinputfile

创建hadoop hdfs input目录:     

bin/hadoop fs -mkdir /input

查看hdfs :

bin/hadoop fs -ls /
bin/hadoop fs -ls /input

上传文件到hdfs input目录:

bin/hadoop fs -put ~/hadoopinputfile/* /input

查看hdfs输出文件内容

bin/hadoop fs -cat /output/part-r-00000        

运行hadoop自带的wordcount:   

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-example-2.7.4.jar wordcount /input /output

 

常用hdfs命令:

查看当前目录信息 hdfs dfs -ls /input

上传文件 hdfs dfs -put /本地路径 /hdfs路径

下载文件到本地 hdfs dfs -get /hdfs路径 /本地路径

创建文件夹 hdfs dfs -mkdir /input

创建多级文件夹 hdfs dfs -mkdir -p /input/temp

移动hdfs文件 hdfs dfs -mv /hdfs路径 /hdfs路径

复制hdfs文件 hdfs dfs -cp /hdfs路径 /hdfs路径

删除hdfs文件 hdfs dfs -rm /test.txt

删除hdfs文件夹 hdfs dfs -rm -r /input

查看hdfs中的文件

hdfs dfs -cat /文件

hdfs dfs -tail -f /文件

查看文件夹中有多少个文件 hdfs dfs -count /文件夹

查看hdfs的总空间 hdfs dfs -df / 

修改副本数 hdfs dfs -setrep 1 /temp.txt

如果在上传文件到hdfs时遇到权限问题,很有可能与hdfs文件夹的用户组有关系,可以用下面命令来修改hdfs 文件夹的权限和owner


修改hdfs的权限
sudo hdfs dfs -chmod -R 755 /input

修改hdfs文件的所有者
sudo hdfs dfs -chown -R {user} /input
修改文件所属组 hadoop fs -chgrp [-R] {group} /input

 

posted @ 2017-12-26 15:21  黎明踏浪号  阅读(4304)  评论(0编辑  收藏  举报