千家信息网

HDFS怎么安装

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要为大家展示了"HDFS怎么安装",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"HDFS怎么安装"这篇文章吧。1.系统环境安装java(大于1.6
千家信息网最后更新 2025年01月24日HDFS怎么安装

这篇文章主要为大家展示了"HDFS怎么安装",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"HDFS怎么安装"这篇文章吧。

1.系统环境

  1. 安装java(大于1.6版本)

  2. 安装ssh和rsync,并且启动ssh服务

  3. 下载hadoop包,用编译后的包,地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/

环境说明:

  1. Linux发行版:centos6.5(64位,hadoop新版的只提供了64位包)

  2. Hadoop版本:2.5.1

  3. Java版本:1.7.0.67

  4. 设置了3个虚拟机,host为namenode(192.168.59.103),datanode1(192.168.59.104)和datanode2(192.168.59.105)

2.配置SSH

1.生成ssh key(namenode机器和datanode机器都是需要进行下面配置)

  1. $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys$ chmod 644 authorized_keys #该步骤在centos需要,在ubuntu是可以不用的

2.通过下面命令,如果可以直接登陆,说明免密码登录已经设置成功。

  1. $ ssh localhost

3.在2台datanode机器同样生成自动登陆的ssh key,并将namenode的id_dsa.pub到datanode1和datanode2的.ssh的目录下面

  1. # 在namenode的机器,根目录下面的.ssh$ scp id_dsa.pub hadoop@datanode1:~/.ssh/id_dsa.pub.namenode$ scp id_dsa.pub hadoop@datanode2:~/.ssh/id_dsa.pub.namenode# 在datanode1和datanode2的.ssh目录下面$ cat id_dsa.pub.namenode >> authorized_keys

4.验证是否能通过ssh无密码登录到dataname1和datanode2,出现标红的说明配置成功。

  1. [hadoop@namenode .ssh]$ ssh datanode1Last login: Sun Nov 30 11:03:52 2014 from 192.168.59.103[hadoop@datanode1 ~]$ exitlogoutConnection to datanode1 closed.[hadoop@namenode .ssh]$ ssh datanode2Last login: Sun Nov 30 11:03:15 2014 from localhost.localdomain[hadoop@datanode2 ~]$ exitlogoutConnection to datanode2 closed.

3.配置基础环境变量

分别在namenode,datanode1和datanode2根目录下面的.bash_profile配置下面内容:

  1. # java环境变量export JAVA_HOME=/home/hadoop/local/jdkexport PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar# hadoop环境变量export HADOOP_DEV_HOME=/home/hadoop/local/hadoopexport PATH=$PATH:$HADOOP_DEV_HOME/binexport PATH=$PATH:$HADOOP_DEV_HOME/sbinexport HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}export YARN_HOME=${HADOOP_DEV_HOME}export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoopexport HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoopexport YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoopexport CLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

配置完成之后,需要重新登陆来加载环境变量(或者通过source ~/.bash_profile);通过下面的命令可以查看环境变量是否配置正常。

  1. [hadoop@namenode ~]$ java -versionjava version "1.7.0_67"Java(TM) SE Runtime Environment (build 1.7.0_67-b01)Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)[hadoop@namenode ~]$ hadoopUsage: hadoop [--config confdir] COMMANDwhere COMMAND is one of:fs run a generic filesystem user clientversion print the versionjar  run a jar filechecknative [-a|-h] check native hadoop and compression libraries availabilitydistcp   copy file or directories recursivelyarchive -archiveName NAME -p  *  create a hadoop archiveclasspath prints the class path needed to get theHadoop jar and the required librariesdaemonlog get/set the log level for each daemonorCLASSNAME run the class named CLASSNAMEMost commands print help when invoked w/o parameters.

4.配置hadoop

在namenode配置完成之后直接scp到其他datanode即可,这样可以保证机器配置的一致性。

  1. $ cd ~/local/hadoop/etc/hadoop

所有的配置文件都在这里。

打开hadoop-env.sh,配置jdk环境变量:

  1. # 将export JAVA_HOME=${JAVA_HOME}替换为export JAVA_HOME=/home/hadoop/local/jdk

配置yarn-env.sh:

  1. # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 去掉注释,并且替换为下面内容export JAVA_HOME=/home/hadoop/local/jdk

配置slave文件(hdfs的datanode机器配置):

  1. [hadoop@namenode hadoop]$ cat slavesnamenodedatanode1datanode2

配置core-site.xml(hadoop的核心策略配置文件)

  1. [hadoop@namenode hadoop]$ cat core-site.xmlfs.default.namehdfs://namenode:9000hadoop.tmp.dir/home/hadoop/hadoop/tmpA base for other temporary directories.

配置hdfs-site.xml(hdfs的策略配置文件):

  1. dfs.namenode.secondary.http-addressnamenode:9001dfs.namenode.name.dirfile:/home/hadoop/hadoop/namedfs.datanode.data.dir          file:/home/hadoop/hadoop/data      dfs.replication          2storage copy numberdfs.webhdfs.enabledtrue

到此,整个hdfs的分布式文件系统就配置完成,把上面的hadoop-env.sh,yarn-env.sh,core-site.xml,hdfs-site.xml同步到datanode的机器上面。

5.启动服务

通过下面命令进行操作

  1. [hadoop@namenode hadoop]$ cd /home/hadoop/local/hadoop[hadoop@namenode hadoop]$ bin/hdfs namenode -format[hadoop@namenode hadoop]$ sbin/start-dfs.sh

第二个命令是为格式化整个hdfs的namenode节点,格式化之后会在配置的hadoop的name下面出现下面目录结构

  1. [hadoop@namenode hadoop]$ tree namename├── current│   ├── edits_inprogress_0000000000000000001│   ├── fsimage_0000000000000000000│   ├── fsimage_0000000000000000000.md5│   ├── seen_txid│   └── VERSION└── in_use.lock

在这个目录中,有2个重要的文件:fsimage和edits。

其中fsimage镜像文件包含了整个HDFS文件系统的所有目录和文件的indoe信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组等)等。

另外,edit文件主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS客户端执行所有的写操作都会被记录到edit文件中。

启动dfs之后,从我们配置的data目录可以看见下面目录结果

[hadoop@namenode hadoop]$ tree datadata├── current│   ├── BP-441758184-192.168.59.103-1417330891399│   │   ├── current│   │   │   ├── finalized│   │   │   ├── rbw│   │   │   └── VERSION│   │   ├── dncp_block_verification.log.curr│   │   └── tmp│   └── VERSION└── in_use.lock

执行put命令之后,可以看到一个文件在data中是如何存储的。如下:

  1. $ hadoop fs -put etc/hadoop/core-site.xml /data/input[hadoop@namenode hadoop]$ tree datadata├── current│   ├── BP-441758184-192.168.59.103-1417330891399│   │   ├── current│   │   │   ├── finalized│   │   │   │   ├── blk_1073741827│   │   │   │   └── blk_1073741827_1003.meta│   │   │   ├── rbw│   │   │   │   ├── blk_1073741825│   │   │   │   ├── blk_1073741825_1001.meta│   │   │   │   ├── blk_1073741826│   │   │   │   └── blk_1073741826_1002.meta│   │   │   └── VERSION│   │   ├── dncp_block_verification.log.curr│   │   ├── dncp_block_verification.log.prev│   │   └── tmp│   └── VERSION└── in_use.lock

以上是"HDFS怎么安装"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0