技术库 > 网站架构

Hadoop 参数配置

技术库:tec.5lulu.com

1 常用端口

from:tec.5lulu.com

组件

节点 

默认端口

配置

用途说明

HDFS

DataNode

50010

dfs.datanode.address

datanode服务端口,用于数据传输

HDFS

DataNode

50075

dfs.datanode.http.address

http服务的端口

HDFS

DataNode

50475

dfs.datanode.https.address

https服务的端口

HDFS

DataNode

50020

dfs.datanode.ipc.address

ipc服务的端口

HDFS

NameNode

50070

dfs.namenode.http-address

http服务的端口

HDFS

NameNode

50470

dfs.namenode.https-address

https服务的端口

HDFS

NameNode

8020

fs.defaultFS

接收Client连接的RPC端口,用于获取文件系统metadata信息。

HDFS

journalnode

8485

dfs.journalnode.rpc-address

RPC服务

HDFS

journalnode

8480

dfs.journalnode.http-address

HTTP服务

HDFS

ZKFC

8019

dfs.ha.zkfc.port

ZooKeeper FailoverController,用于NN HA

YARN

ResourceManager

8032

yarn.resourcemanager.address

RM的applications manager(ASM)端口,ResourceManager对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等

YARN

ResourceManager

8030

yarn.resourcemanager.scheduler.address

scheduler组件的IPC端口,ResourceManager对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。

YARN

ResourceManager

8031

yarn.resourcemanager.resource-tracker.address

IPC

ResourceManager对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。

YARN

ResourceManager

8033

yarn.resourcemanager.admin.address

IPC

ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。

YARN

ResourceManager

8088

yarn.resourcemanager.webapp.address

http服务端口

ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。

YARN

NodeManager

8040

yarn.nodemanager.localizer.address

localizer IPC

YARN

NodeManager

8042

yarn.nodemanager.webapp.address

http服务端口

YARN

NodeManager

8041

yarn.nodemanager.address

NM中container manager的端口

YARN

JobHistory Server

10020

mapreduce.jobhistory.address

IPC

YARN

JobHistory Server

19888

mapreduce.jobhistory.webapp.address

http服务端口

HBase

Master

60000

hbase.master.port

IPC

HBase

Master

60010

hbase.master.info.port

http服务端口

HBase

RegionServer

60020

hbase.regionserver.port

IPC

HBase

RegionServer

60030

hbase.regionserver.info.port

http服务端口

HBase

HQuorumPeer

2181

hbase.zookeeper.property.clientPort

HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。

HBase

HQuorumPeer

2888

hbase.zookeeper.peerport

HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。

HBase

HQuorumPeer

3888

hbase.zookeeper.leaderport

HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。

Hive

Metastore

9083

/etc/default/hive-metastore中export PORT=<port>来更新默认端口

 

Hive

HiveServer

10000

/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口

 

ZooKeeper

Server

2181

/etc/zookeeper/conf/zoo.cfg中clientPort=<port>

对客户端提供服务的端口

ZooKeeper

Server

2888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分

follower用来连接到leader,只在leader上监听该端口。

ZooKeeper

Server

3888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分

用于leader选举的。只在electionAlg是1,2或3(默认)时需要。


补充 参数:

组件

节点 

缺省值

配置

用途说明

YARN

NodeManager

8192

yarn.nodemanager.resource.memory-mb

NodeManager总的可用物理内存。注意,该参数是不可修改的,一旦设置,整个运行过程中不 可动态修改。另外,该参数的默认值是8192MB,即使你的机器内存不够8192MB,YARN也会按照这些内存来使用,因此,这个值通过一 定要配置。不过,Apache已经正在尝试将该参数做成可动态修改的。

YARN

NodeManager

2.1

yarn.nodemanager.vmem-pmem-ratio

每使用1MB物理内存,最多可用的虚拟内存数。

YARN

NodeManager 8

yarn.nodemanager.resource.cpu-vcores

NodeManager总的可用虚拟CPU个数

YARN

NodeManager

${hadoop.tmp.dir}/nm-local-dir

yarn.nodemanager.local-dirs

中间结果存放位置,类似于1.0中的mapred.local.dir。注意,这个参数通常会配置多个目录,已分摊磁盘IO负载。

YARN

NodeManager

10800(3小时)

yarn.nodemanager.log.retain-seconds

NodeManager上日志最多存放时间(不启用日志聚集功能时有效)。

YARN

NodeManager   yarn.nodemanager.aux-services NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序

YARN

NodeManager 1024/8192 yarn.scheduler.minimum-allocation-mb/ yarn.scheduler.maximum-allocation-mb 单个可申请的最小/最大内存资源量。比如设置为1024和3072,则运行MapRedce作业时,每个Task最少可申请1024MB内存,最多可申请3072MB内存。

YARN

NodeManager   yarn.scheduler.minimum-allocation-vcores / yarn.scheduler.maximum-allocation-vcores 单个可申请的最小/最大虚拟CPU个数。比如设置为1和4,则运行MapRedce作业时,每个Task最少可申请1个虚拟CPU,最多可申请4个虚拟CPU。什么是虚拟CPU,查看:http://dongxicheng.org/mapreduce-nextgen/yarnmrv2-resource-manager-resource-manager/

       

     



     



     

 


       


       


       

     



       


       



 





   



















   

 





 



 





   



   




2 MapReduce参数配置

参数名称

缺省值

说明

mapreduce.job.name

 

作业名称

mapreduce.job.priority

NORMAL

作业优先级

yarn.app.mapreduce.am.resource.mb

1536

MR ApplicationMaster占用的内存量

yarn.app.mapreduce.am.resource.cpu-vcores

1

MR ApplicationMaster占用的虚拟CPU个数

mapreduce.am.max-attempts

2

MR ApplicationMaster最大失败尝试次数

mapreduce.map.memory.mb

1024

每个Map Task需要的内存量

mapreduce.map.cpu.vcores

1

每个Map Task需要的虚拟CPU个数

mapreduce.map.maxattempts

4

Map Task最大失败尝试次数

mapreduce.reduce.memory.mb

1024

每个Reduce Task需要的内存量

mapreduce.reduce.cpu.vcores

1

每个Reduce Task需要的虚拟CPU个数

mapreduce.reduce.maxattempts

4

Reduce Task最大失败尝试次数

mapreduce.map.speculative

false

是否对Map Task启用推测执行机制

mapreduce.reduce.speculative

false

是否对Reduce Task启用推测执行机制

mapreduce.job.queuename

default

作业提交到的队列

mapreduce.task.io.sort.mb

100

任务内部排序缓冲区大小

mapreduce.map.sort.spill.percent

0.8

Map阶段溢写文件的阈值(排序缓冲区大小的百分比)

mapreduce.reduce.shuffle.parallelcopies

5

Reduce Task启动的并发拷贝数据的线程数目

3 伪分布配置

           1. conf/hadoop-env.sh文件中增加:export JAVA_HOME=/home/Java/jdk1.6

           2.  conf/core-site.xml文件中增加如下内容:

 <!--  fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URIDataNode交互,以取得文件的块列表。-->

 <property>

              <name>fs.default.name</name>

              <value>hdfs://localhost:9000</value>

        </property>

       <!—hadoop.tmp.dir hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配                     置namenodedatanode的存放位置,默认就放在这个路径中-->

  <property>

      <name>hadoop.tmp.dir</name>

       <value>/home/hdfs/tmp</value>

   </property>

conf/hdfs-site.xml中增加如下内容

       <!-- dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个           数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的         可靠性(系统故障时,也许会造成数据丢失)-->

     <property>

         <name>dfs.replication</name>

         <value>1</value>

     </property>

          <!--  dfs.data.dir 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir这个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆  盖。 

dfs.name.dir 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。-->

           <property>

             <name>dfs.name.dir</name>

             <value>/home/hdfs/name</value>

        </property>

       <property>

        <name>dfs.data.dir</name>

        <value>/home/hdfs/data</value>

   </property>

               <!—解决:org.apache.hadoop.security.AccessControlException:Permission                                                 denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x

因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho 身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/hadoop ,  由于 DrWho 用户对hadoop目录并没有写入权限,所以导致异常的发生。解决方法为:放开 hadoop 目录的权限, 命令如下 :$ hadoop fs -chmod 777 /user/hadoop -->

               <property> 

                   <name>dfs.permissions</name>

                   <value>false</value>

<description>

                      If "true", enable permission checking in HDFS. If "false", permission checking is turned                     off,   but all other behavior is unchanged. Switching from one parameter value to                                   the other does   not change the mode, owner or group of files or directories

              </description>

        </property>

conf/mapred-site.xml中增加如下内容

<!-- mapred.job.tracker -JobTracker的主机(或者IP)和端口。-->

      <property>

       <name>mapred.job.tracker</name>

      <value>localhost:9001</value>

</property>

4 操作命令

           1.  格式化工作空间

进入bin目录,运行 ./hadoop namenode –format

           2.  启动hdfs

进入hadoop目录,bin/下面有很多启动脚本,可以根据自己的需要来启动。

                    * start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack

* stop-all.sh 停止所有的Hadoop

* start-mapred.sh 启动Map/Reduce守护。包括JobtrackerTasktrack

* stop-mapred.sh 停止Map/Reduce守护

* start-dfs.sh 启动Hadoop DFS守护NamenodeDatanode

* stop-dfs.sh 停止DFS守护  

Hadoop hdfs 整合

     可按如下步骤删除和更改hdfs不需要的文件:

         1.hadoop-core-1.0.0.jar 移动到lib目录下。

         2. ibexec目录下的文件移动到bin目录下。

         3. 删除除binlibconflogs之外的所有目录和文件。

         4. 如果需要修改日志存储路径,则需要在conf/hadoop-env.sh文件中增加:

            export    HADOOP_LOG_DIR=/home/xxxx/xxxx即可。

5 HDFS文件操作

Hadoop使用的是HDFS,能够实现的功能和我们使用的磁盘系统类似。并且支持通配符,如*

       1.  查看文件列表

查看hdfs/user/admin/hdfs目录下的文件。

a. 进入HADOOP_HOME目录。

b. 执行sh bin/hadoop fs -ls /user/admin/hdfs

查看hdfs/user/admin/hdfs目录下的所有文件(包括子目录下的文件)。

a. 进入HADOOP_HOME目录。

b. 执行sh bin/hadoop fs -lsr /user/admin/hdfs

       2.  创建文件目录

查看hdfs/user/admin/hdfs目录下再新建一个叫做newDir的新目录。

a. 进入HADOOP_HOME目录。

b. 执行sh bin/hadoop fs -mkdir /user/admin/hdfs/newDir

       3.  删除文件

删除hdfs/user/admin/hdfs目录下一个名叫needDelete的文件

a. 进入HADOOP_HOME目录。

b. 执行sh bin/hadoop fs -rm /user/admin/hdfs/needDelete

      删除hdfs/user/admin/hdfs目录以及该目录下的所有文件

a. 进入HADOOP_HOME目录。

b. 执行sh bin/hadoop fs -rmr /user/admin/hdfs

        4. 上传文件

上传一个本机/home/admin/newFile的文件到hdfs/user/admin/hdfs目录下

a. 进入HADOOP_HOME目录。

b. 执行sh bin/hadoop fs put /home/admin/newFile /user/admin/hdfs/

        5. 下载文件

下载hdfs/user/admin/hdfs目录下的newFile文件到本机/home/admin/newFile

a. 进入HADOOP_HOME目录。

             b. 执行sh bin/hadoop fs get /user/admin/hdfs/newFile /home/admin/newFile

        6. 查看文件内容

查看hdfs/user/admin/hdfs目录下的newFile文件

a. 进入HADOOP_HOME目录。

b. 执行sh bin/hadoop fs cat /home/admin/newFile

Hadoop 参数配置


本文链接 http://tec.5lulu.com/detail/105dtn2i5r6w88s0f.html

我来评分 :7
1

转载注明:转自5lulu技术库

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

www.5lulu.com