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

如何部署hadoop分布式文件系统,第1张

一、实战环境

系统版本: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 [email protected]

ssh-copy-id -i .ssh/id_rsa.pub [email protected]

三、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/ [email protected].$i:/data/ done

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

从fs -ls从列出来的文件看,这个文件夹/user/root/input是通过root用户创建的。说明你在从本地文件系统拷贝input目录到hdfs系统的时候,不是采用的hadoop用户,而是用root用户执行的拷贝命令,你可能忘记切换用户了,可以删除现在的input目录(采用root用户运行hadoop的删除命令,或者不删除也没关系),重新使用hadoop用户把input导入到hdfs系统中试试看。

frostfish425说的是对的!/user/hadoop是安装目录,就是说你hadoop相关的配置和代码都是放在这个位置,这个你自己定就可以了,但是要注意你配置文件和环境变量中的相关配置都要相应的发生改变。而/tmp/hadoop-hadoop/dfs/name是你配置的hdfs目录,也就是数据存放目录,在hdfs-site.xml中配置的,当然你也可以改变这个目录!

这个目录挂载的磁盘要足够大,不然数据存放不下,你初始化的时候报的这个Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted其实就是在/tmp/hadoop-hadoop/dfs这个目录下创建了name目录,意思就是告诉你,数据存放目录已经创建成功了!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11860653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存