本文为博主原创,允许转载,但请声明原文地址:Hadoop 1.x HDFS安装步骤
1、 HDFS安装运行:
按照官方文档进行配置:http://hadoop.apache.org/docs/r2.6.4/
以及这篇详细的文章(感谢作者):http://www.aboutyun.com/thread-7684-1-1.html
还有厦大的文章:http://www.powerxing.com/install-hadoop-in-centos/
主要步骤总结如下:
A、 linux服务器必须有jdk和ssh,并配置JAVA_HOME;
B、 将Hadoop复制到linux服务器中,解压,设置软链方便操作;
C、 修改配置文件:core-site.xml配置NameNode的对外访问地址和工作缓存目录,fsimage更新时间和大小等;
D、 配置hdfs-site.xml:配置DataNode的Block副本数目,默认为3,要小于等于集群DataNode总数,SecondaryNameNode节点主机,NameNode节点http主机等;
E、 配置hadoop-env.sh:添加JAVA_HOME的目录;
F、 ssh免密码登录:在NameNode创建公钥私钥,再把公钥上传到所有DataNode服务器上,添加到指定的文件尾部,使NameNode能够直接证书登录所有DataNode的服 务器;
G、 配 置slaves配置文件:配置DataNode服务器列表;
H、 配置masters文件:配置SecondaryNameNode服务器地址;
I、 在所有其他节点的服务器都上传Hadoop,并把刚才配置的NameNode服务器的配置文件全部拷贝到其他节点的配置文件,保持所有服务器的配置文件统一性;
J、 服务器之间的防火墙进行相应的设置;
K、 格式化整个文件系统:bin/hdfs namenode -format
L、 启动HDFS:sbin/start-dfs.sh
M、 主机浏览器访问http://NameNodeIP:50070即可访问HDFS文件系统
踩坑提示:
A、主机和各个节点的机器上的hosts文件和ip的映射关系都要设置好,hostname也都设置好,与hadoop的slaves和masters中设置的主机名对应!!!
B、如果有多次格式化的经历,要保证namenode的clusterID和datanode的clusterID保持一致,namespaceID也要一致,这样才能保证他们能协同工作(不在乎数据的话把hadoop工作目录下的文件全部删除再格式化一遍也能解决)
C、如果namenode启动了,但是其他节点却没有发现相应的进程启动,检查一下防火墙哦~
D、要设置secondarynamenode和namenode在不同的机器节点上,在hdfs-site.xml设置dfs.secondary.http.address和dfs.http.address属性哦,详见官方文档
E、据说slaves和masters文件填写主机名和ip都行,反正我用ip是入坑了,有兴趣可以试试,不想折腾就好好设置好主机名ip映射,并用主机名进行设置。。。
F、配置文件配置hadoop相关工作目录时,要么直接写最简单的/usr/java/hadoop/tmp类似的,要么写file:///usr/java/hadoop/tmp,不然格式化会出错。。。
G、坑爹的Hadoop日志文件啊,logs目录下的log后缀才是真正的日志文件,而且进去整页基本是空的,要向下拉才可以看到内容,被坑得出问题都找不到,这下好了,以后出问题会找错误所在了。。。
H、在hosts文件配置hostname的时候,和它对应的ip要是内网ip啊!!!反正我腾讯云服务器用外网ip是坑了。。。
2、 HDFS命令:
A、 格式化文件系统NameNode:bin/hdfs namenode -format
B、 启动文件系统:sbin/start-dfs.sh
C、 新建文件夹:bin/hdfs dfs -mkdir /user
D、 向文件夹中放置文件:bin/hdfs dfs -put etc/hadoop input
etc/hadoop是源文件夹或文件路径 input是目标文件夹路径,这样写将会把文件放置到/user/username/下的input文件夹内,若要自定义文件路径,写绝对路径即可
E、 从HDFS中取出文件:bin/hdfs dfs -get output /home/output
取出当前用户的output文件(夹)到本地的/home/output文件(夹)
F、 查看文件:bin/hdfs dfs -cat output/*
G、 列出文件夹的文件:bin/hdfs dfs -ls output
H、 执行jar文件:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'
总结:基本命令和Linux的相关的文件系统操作命令一致,只是加了一些前缀,具体通过info hadoop或info hdfs命令查看即可。
由于HDFS文件系统的特性,增删查操作可以通过命令简单执行,但是修改操作暂且不行,可通过先删除后添加的操作实现修改功能。
本文为博主原创,允许转载,但请声明原文地址:Hadoop 1.x HDFS安装步骤