hadoop服务器,hadoop部署

hadoop集群中的几个重要概念

(1)journalnode:使两个namenode之间的数据实现共享(hadoop层面的)。系统层面的是NFS。

(2)zookeeper:实现namenode的切换,确保集群只有一个active

(3)格式化zkfc,让在zookeeper中生成ha节点

 (4)格式化nn:就是格式化hdfs.

与普通文件系统一样,HDFS文件系统必须要先格式化,创建元数据数据结构以后才能使用。

(5)conf下的一些配置文件的作用

hadoop-env.sh:用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;

core-site.xml:用于定义系统级别的参数,它作用于全部进程及客户端,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;

hdfs-site.xml: HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;

mapred-site.xml:mapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;

masters: hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;

slaves:Hadoop集群的slave(datanode)和tasktracker的主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;

Hadoop-metrics2.properties:控制metrics在hadoop上如何发布属性

Log4j.properties:系统日志文件、namenode审计日志、tarsktracker子进程的任务日志属性

(6)hadoop.tmp.dir属性用于定义Hadoop的临时目录,其默认为/tmp/hadoop-${username}。HDFS进程的许多目录默认都在此目录中,/hadoop/tmp目录,需要注意的是,要保证运行Hadoop进程的用户对其具有全部访问权限。

fs.default.name属性用于定义HDFS的名称节点和其默认的文件系统,其值是一个URI,即NameNode的RPC服务器监听的地址(可以是主机名)和端口(默认为8020)。其默认值为file:///,即本地文件系统。

dfs.name.dir属性定义的HDFS元数据持久存储路径,默认为${hadoop.tmp.dir}/dfs/name

dfs.replication属性定义保存副本的数量,默认是保存3份,由于这里只有两台slave。所以设置2。

(7)可以通过修改下面几个参数对集群读写性能进行优化

dfs.datanode.handler.count(加大)DN的服务线程数。这些线程仅用于接收请求,处理业务命令

dfs.namenode.handler.count(加大)  NN的服务线程数。用于处理RPC请求

dfs.namenode.avoid.read.stale.datanode(true)决定是否避开从脏DN上读数据。脏DN指在一个指定的时间间隔内没有收到心跳信息。脏DN将被移到可以读取(写入)节点列表的尾端。尝试开启

dfs.namenode.avoid.write.stale.datanode(true)  和上面相似,是为了避免向脏DN写数据

如何部署hadoop分布式文件系统

一、实战环境

系统版本:CentOS 5.8x86_64

JAVA版本:JDK-1.7.0_25

Hadoop版本:hadoop-2.2.0

192.168.149.128namenode(充当namenode、secondary namenode和ResourceManager角色)

192.168.149.129datanode1(充当datanode、nodemanager角色)

192.168.149.130datanode2(充当datanode、nodemanager角色)

二、系统准备

1、Hadoop可以从Apache官方网站直接下载最新版本Hadoop2.2。官方目前是提供了linux32位系统可执行文件,所以如果需要在64位系统上部署则需要单独下载src源码自行编译。(如果是真实线上环境,请下载64位hadoop版本,这样可以避免很多问题,这里我实验采用的是32位版本)

1234 Hadoop

Java

2、我们这里采用三台CnetOS服务器来搭建Hadoop集群,分别的角色如上已经注明。

第一步:我们需要在三台服务器的/etc/hosts里面设置对应的主机名如下(真实环境可以使用内网DNS解析)

[root@node1 hadoop]# cat/etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1localhost.localdomain localhost

192.168.149.128node1

192.168.149.129node2

192.168.149.130node3

(注*我们需要在namenode、datanode三台服务器上都配置hosts解析)

第二步:从namenode上无密码登陆各台datanode服务器,需要做如下配置:

在namenode 128上执行ssh-keygen,一路Enter回车即可。

然后把公钥/root/.ssh/id_rsa.pub拷贝到datanode服务器即可,拷贝方法如下:

ssh-copy-id-i.ssh/id_rsa.pub root@192.168.149.129

ssh-copy-id-i.ssh/id_rsa.pub root@192.168.149.130

三、Java安装配置

tar-xvzf jdk-7u25-linux-x64.tar.gz&&mkdir-p/usr/java/; mv/jdk1.7.0_25/usr/java/即可。

安装完毕并配置java环境变量,在/etc/profile末尾添加如下代码:

export JAVA_HOME=/usr/java/jdk1.7.0_25/

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=$JAVE_HOME/lib/dt.jar:$JAVE_HOME/lib/tools.jar:./

保存退出即可,然后执行source/etc/profile生效。在命令行执行java-version如下代表JAVA安装成功。

[root@node1~]# java-version

java version"1.7.0_25"

Java(TM) SE Runtime Environment(build 1.7.0_25-b15)

Java HotSpot(TM) 64-Bit Server VM(build 23.25-b01, mixed mode)

(注*我们需要在namenode、datanode三台服务器上都安装Java JDK版本)

四、Hadoop版本安装

官方下载的hadoop2.2.0版本,不用编译直接解压安装就可以使用了,如下:

第一步解压:

tar-xzvf hadoop-2.2.0.tar.gz&&mv hadoop-2.2.0/data/hadoop/

(注*先在namenode服务器上都安装hadoop版本即可,datanode先不用安装,待会修改完配置后统一安装datanode)

第二步配置变量:

在/etc/profile末尾继续添加如下代码,并执行source/etc/profile生效。

export HADOOP_HOME=/data/hadoop/

export PATH=$PATH:$HADOOP_HOME/bin/

export JAVA_LIBRARY_PATH=/data/hadoop/lib/native/

(注*我们需要在namenode、datanode三台服务器上都配置Hadoop相关变量)

五、配置Hadoop

在namenode上配置,我们需要修改如下几个地方:

1、修改vi/data/hadoop/etc/hadoop/core-site.xml内容为如下:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href=\'#\'" Put site-specific property overrides inthisfile.-->

<configuration>

<property>

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

<value>hdfs://192.168.149.128:9000</value>

</property>

<property>

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

<value>/tmp/hadoop-${user.name}</value>

<description>A base forother temporary directories.</description>

</property>

</configuration>

2、修改vi/data/hadoop/etc/hadoop/mapred-site.xml内容为如下:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href=\'#\'" Put site-specific property overrides inthisfile.-->

<configuration>

<property>

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

<value>192.168.149.128:9001</value>

</property>

</configuration>

3、修改vi/data/hadoop/etc/hadoop/hdfs-site.xml内容为如下:

<?xml version="1.0"encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl"href=\'#\'"/name>

<value>/data/hadoop/data_name1,/data/hadoop/data_name2</value>

</property>

<property>

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

<value>/data/hadoop/data_1,/data/hadoop/data_2</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

</configuration>

4、在/data/hadoop/etc/hadoop/hadoop-env.sh文件末尾追加JAV_HOME变量:

echo"export JAVA_HOME=/usr/java/jdk1.7.0_25/">>/data/hadoop/etc/hadoop/hadoop-env.sh

5、修改 vi/data/hadoop/etc/hadoop/masters文件内容为如下:

192.168.149.128

6、修改vi/data/hadoop/etc/hadoop/slaves文件内容为如下:

192.168.149.129

192.168.149.130

如上配置完毕,以上的配置具体含义在这里就不做过多的解释了,搭建的时候不明白,可以查看一下相关的官方文档。

如上namenode就基本搭建完毕,接下来我们需要部署datanode,部署datanode相对简单,执行如下操作即可。

1 fori in`seq 129130`; doscp-r/data/hadoop/ root@192.168.149.$i:/data/; done

自此整个集群基本搭建完毕,接下来就是启动hadoop集群了。

hadoop是什么

hadoop是分布式系统基础架构。

1、hadoop是一个由Apache基金会所开发的分布式系统基础架构。

2、它可以使用户在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。

3、hadoop的框架最核心的设计就是HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。

4、Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。

Hadoop优点:

1、易于使用:Hadoop的API简单易用,开发人员可以很容易地编写MapReduce程序,实现分布式计算。

2、成本低廉:Hadoop是一个开源的软件,免费使用,而且可以运行在廉价的硬件上,降低了数据处理的成本。

3、处理多种数据类型:Hadoop支持处理多种数据类型,包括结构化数据、半结构化数据和非结构化数据。

4、高扩展性:Hadoop可以很容易地扩展到数千台服务器,支持PB级别的数据存储和处理。

5、高效性:Hadoop采用了分布式计算的方式,可以并行处理大量数据,提高数据处理的效率。

阅读剩余
THE END