㈠ hadoop安装问题:HDFS文件系统不能格式化。求解!!
1、找不到hadoop命令,是因为你没有将hadoop的bin目录加入PATH(只有加入PATH环境变量中的程序才可以直接访问)。
你可以
a)cd $HADOOP_HOME(如果进行了配置)然后执行bin/hadoop。
b)干脆使用全路径
c)将hadoop的bin目录加入PATH中。
2、jps是java的工具。输入 jps显示8813 Jps,表示现在没有正在运行的java程序。
hadoop的安装,只需要解压即可。至少需要在conf目录中的hadoop-env.xml文件中,配置JAVA_HOME才能运行。
㈡ hadoop的HDFS文件格式化hadoop namenode -format,只需要在初始的时候格式化一次
1、hadoop namenode -format命令只对namenode有效,对其它节点无效。
2、集群增加节点,只要在namenode节点的配置文件中,将IP和端口以及数据目录配置一下就可以了。可以用更新或是重启服务的命令,那么新增的datanode就会自动追加到集中。
3、称这样的系统为高度自由可伸缩系统。增或减节点都能被智能控制节点监测到,并将相应的节点的变化,通过冗余机制给予解决。
再思考下吧。
㈢ 如何在ubuntu中将hadoop的hdfs进行格式化我用hdfs namenode -format命令提示没有hdfs该命令。
命令启动hadoop集群,死活不见namenode节点。在解决这个问题的时候,又不断的引出了很多新的问题。 虽然这些问题在以前学习hadoop时都解决过。但,正因为以前解决过,现在遇到这些问题就更不想重复解决了。想要以最快的速度启动集群。最后想了一个馊主意。直接格式化namenode吧。 进入正题: hadoop中重新格式化namenode 因为之前正常启动过hadoop集群。所以在hadoop的对应data目录中,已经有很多相关文件夹了。我们在格式化之前得先删除相关文件夹才行。 一、对于master主节点进行操作 一、删除data、name、namesecondary三个文件夹。 二、删除mrlocal目录中的四个文件夹 三、删除logs文件夹中的所有文件 二、对于node节点进行操作 一、删除hdfs/data中的所有文件 二、删除mrlocal中的所有文件 三、删除logs中所有文件 基本删除完成后。开始重新格式化namenode 三、格式化namenode [hadoop@master hadoop]$ bin/hadoop namenode -forma 格式化成功后。重新启动集群 四、重新启动集群 [hadoop@master hadoop]$ bin/start-all.sh 五、查看集群启动情况 [hadoop@master hadoop]$ jps 三吧5一 Jps 三漆四四 TaskTracker 三陆二二 JobTracker 三二漆9 NameNode 三5三三 SecondaryNameNode 三三95 DataNode 如看到 [hadoop@master hadoop]$ jps 三吧5一 Jps 三漆四四 TaskTracker 三陆二二 JobTracker 三二漆9 NameNode 三5三三 SecondaryNameNode 三三95 DataNode 则代表启动成功
㈣ hadoop在linux下的简单配置
实际生产环境中,员工不会直接登陆服务器,而是通过远程连接工具,进行远程登陆。那么就需要知道服务器的IP地址,一个用户名和密码。
1)安装(略)
2)连接虚拟机(前提是物理机能ping通虚拟机)
当我们频繁的在一台机器A上连接另外一台机器B时,不论是复制文件还是删除文件,或者是进行其他操作。那么都要使用机器B的用户名和密码。每次都需要输入密码,那么效率降低了。这个时候,如果可以不输入密码,还有一定的安全性,可以防止黑客在中间截取信息。那么就需要一种安全认证技术。
1)准备工作
2)测试
3)原理
[图片上传失败...(image-3835b9-1576065751546)]
在搭建HDFS的完全分布式集群时,需要以下环境要求:
1)说明
2)配置域名映射
1)准备工作
2)解压jdk到/opt/apps/
3)更名操作
4)配置环境变量
4.1)说明
4.2)配置
4.3)使当前窗口生效(或者reboot)
4.4)验证
1)解压缩
2)更名
3)配置
4)使当前窗口生效
5)验证
1)守护进程布局
2)配置文件的说明
1)配置core-site.xml
2)hdfs-site.xml
3)mapred-site.xml
4)yarn-site.xml
5)slaves文件:配置所有datanode节点的主机名
6)hadoop-env.sh
7)yarn-env.sh
1)说明,使用完整克隆,克隆manager
2)克隆步骤
3)修改新克隆机器的主机名
4)修改新克隆机器的IP地址
5)重启后,验证免密登陆认证是否有效
1)目的
2)格式化的命令
注意:一定要选择namenode所在的节点上进行格式化
1)开启集群的命令
2)使用jps查看节点上的守护进程
3)使用http协议查看分布式文件系统
5)暴力解决节点不正常的方式
3.1 常用指令:
4.1.1 解压hadoop-2.7.6.tar.gz到本地磁盘,如下图:
4.1.2 配置环境变量
4.1.3 由于Hadoop是在32位系统上编译的,并且对windows支持不好,所以需要把64的编译本地库文件(下图的两个文件),放入bin目录中。
10.1.4 验证环境变量是否生效:
10.1.5 如果报错:Error: JAVA_HOME is incorrectly set
为了方便开发,我们可以将相关的jar提取出来。
㈤ hdfs格式化exiting with status1怎么办
先输入命令:sudo su获得root权限
输入命令:sudo chmod -R a+w /usr/local/hadoop/ 粗体是自己的安装路径
输入命令exit回到普通用户身份
此时再在Hadoop的根目录下:hdfs namenode -format
成功格式化!
㈥ 如何配置Hadoop环境
资源下载
1、JDK下载:下载链接
2、hadoop:下载链接
3、下载完成后验证一下下载,将计算的MD5值与官网的进行对比已验证安装包的准确性:
md5sum ./hadoop-2.6.*.tar.gz | tr "a-z" "A-Z" # 计算md5值,并转化为大写,方便比较1
一、创建Hadoop用户
创建hadoop用户,并分配以用户名为家目录/home/hadoop,并将其加入到sudo用户组,创建好用户之后,以hadoop用户登录:
sudo useradd -m hadoop -s /bin/bash sudo adser hadoop sudo
sudo passwd hadoop # 设置hadoop用户密码123
二、安装JDK、Hadoop及配置环境变量
安装,解压JDK到/usr/lib/java/路径下,Hadoop到/usr/local/etc/hadoop/路径下:
tar zxf ./hadoop-2.6.*.tar.gz
mv ./hadoop-2.6.* /usr/local/etc/hadoop # 将 /usr/local/etc/hadoop作为Hadoop的安装路径12
解压完成之后,可验证hadoop的可用性:
cd /usr/local/etc/hadoop
./bin/hadoop version # 查看hadoop的版本信息12
若在此处,会出现类似以下的错误信息,则很有可能是该安装包有问题。
Error: Could not find or load main class org.apache.hadoop.util.VersionInfo1
配置环境,编辑“/etc/profile”文件,在其后添加如下信息:
export HADOOP_HOME=/usr/local/etc/hadoopexport JAVA_HOME=/usr/lib/java/jdk1.8.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin12345
使配置的变量生效:
source /etc/profile1
三、测试一下
在此我们可以运行一个简单的官方Demo:
cd `echo $HADOOP_HOME` # 到hadoop安装路径
mkdir ./input
cp ./etc/hadoop/*.xml ./input
hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'1234
输出的结果应该会是:
1 dfsadmin 1
这里有一点需要注意,该Example程序运行时不能已存在output目录,否则或将无法执行!
四、Hadoop的伪分布式环境搭建
什么是伪分布式?Hadoop 伪分布式模式是在一台机器上模拟Hadoop分布式,单机上的分布式并不是真正的分布式,而是使用线程模拟的分布式。分布式和伪分布式这两种配置也很相似,唯一不同的地方是伪分布式是在一台机器上配置,也就是名字节点(namenode)和数据节点(datanode)均是同一台机器。
需要配置的文件有core-site.xml和hdfs-site.xml这两个文件他们都位于${HADOOP_HOME}/etc/hadoop/文件夹下。
其中core-site.xml:
文件hdfs-site.xml的配置如下:
配置完成后,执行格式化命令,使HDFS将制定的目录进行格式化:
若格式化成功,在临近输出的结尾部分可看到如下信息:
如果发现并没有出现如上信息,则使用刷新节点命令进行刷新:
八、HDFS集群实例测试
依然是之前的那个示例,首先,创建一个数据源文件夹,并添加数据:
运行maprece示例:
holding…
㈦ HDFS操作命令
HDFS命令基本格式:hadoop fs -cmd < args >
表格:
注意:以上表格中路径包括hdfs中的路径和linux中的路径。对于容易产生歧义的地方,会特别指出“linux路径”或者“hdfs路径”。如果没有明确指出,意味着是hdfs路径。
HDFS有一个默认的工作目录/user/$USER,其中$USER是用户的登录用户名。不过目录不会自动建立,需要mkdir建立它
命令格式:hadoop fs -mkdir
注意:支持级联创建新目录,Hadoop的mkdir命令会自动创建父目录,类似于带-p的linux命令
put命令从本地文件系统中 复制单个或多个 源路径到目标文件系统,也支持从标准输入设备中读取输入并写入目标文件系统。分为本地上传和上传到HDFS中。
命令格式:hadoop fs -put filename
最后一个参数是句点,相当于放入了默认的工作目录,等价于 hadoop fs -put example.txt /user/chen
上传文件时,文件首先复制到DataNode上,只有所有的DataNode都成功接收完数据,文件上传才是成功的。
命令格式:hadoop dfs put filename newfilename
从本地文件系统中复制单个或多个源路径到目标文件系统。也支持从 标准输入 中读取输入写入目标文件系统。
采用-ls命令列出HDFS上的文件。在HDFS中未带参数的-ls命令没有返回任何值,它默认返回HDFS的home目录下
的内容。在HDFS中,没有当前工作目录这样一个概念,也没有cmd这样的命令。
命令格式:user@NameNode:hadoop$ bin/hadoop dfs -ls
如:
通过“-ls 文件夹名” 命令浏览HDFS下文件夹中的文件
命令格式:hadoop dfs -ls 文件夹名
通过该命令可以查看in文件夹中的所有文档文件
通过“-cat 文件名”命令查看HDFS下文件夹中某个文件的内容
命令格式:hadoop$ bin/hadoop dfs -cat 文件名
通过这个命令可以查看in文件夹中所有文件的内容
通过“-get 文件按1 文件2”命令将HDFS中某目录下的文件复制到本地系统的某文件中,并对该文件重新命名。
命令格式:hadoop dfs -get 文件名 新文件名
-get 命令与-put命令一样,既可以操作目录,也可以操作文件
通过“-rmr 文件”命令删除HDFS下的文件
命令格式:hadoop$ bin/hadoop dfs -rmr 文件
-rmr 删除文档命令相当于delete的递归版本。
通过-format命令实现HDFS格式化
命令格式:user@NameNode:hadoop$ bin/hadoop NameNode -format
通过运行start-dfs.sh,就可以启动HDFS了
命令格式:user@NameNode:hadoop$ bin/ start-dfs.sh
当需要退出HDFS时,通过stop-dfs.sh 就可以关闭HDFS
命令格式:user@NameNode:hadoop$ bin/ stop-dfs.sh
HDFS的命令远不止这些,对于其他操作,可以通过-help commandName 命令列出清单。下面列举一些命令进行说明。
(1)chgrp改变文件所属的组命令
chgrp命令的用途是:更改文件或目录的组所有权。
语法格式:hadoop fs -charg [-R] GROUP URL .....
使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者超级用户。
(2)chmod改变文件的权限
chmod用于改变文件或目录的访问权限,这个Linux系统管理员最常用的命令之一。
使用方法:hadoop fs -chmod [-R] ...
使用-R将使改变在目录结构下递归进行。命令的使用者必须是文件的所有者或者是超级用户
(3)chown改变文件的拥有者
chown命令改变文件的拥有者。
使用方法:hadoop fs -chown [-R]....
使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户。
(4)FromLocal命令
除了限定 源路径 是只能是一个 本地文件 外,其他方面和put命令相似。
使用方法:hadoop fs -FromLocal <localsrc> URI
(5)ToLocal命令
除了限定 目标路径 是一个 本地文件 外,其他方面和get命令类似。
使用方法:hadoop fs -ToLocal {-ignorecrc} {-crc} URI <localdst>
(6)cp命令
cp命令是将文件从源路径复制到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录。
使用方法:hadoop fs -cp URI [URI....] <dest>
返回值:成功返回0 ,失败返回-1
(7)命令
命令显示目录中 所有文件的大小 ,或者当只指定一个文件时,显示此文件的大小
使用方法:hadoop fs - URI [URI........]
返回值
成功返回0,失败返回-1
(8)s命令
s是显示 文件大小 的命令。
使用方法:hadoop fs -s <args>
(9)expunge命令
expunge是清空回收站的命令
使用方法:hadoop fs -expunge
(10)get命令
get是复制文件到本地文件系统的命令
使用方法:hadoop fs -get [-ignorecrc] [-crc] <localdst>
可用-ignorecrc选项复制CRC校验失败的文件:使用-CRC选项复制文件以及CRC信息。
返回值
成功返回0,失败返回-1
(11)getmerge命令
getmerge命令用于接受一个源目录和一个目标文件作为输入,并且将源目录中所有的文件合并成本地目标文件。
使用方法:hadoop fs -getmerge <src> <localdst> [addnl]
参数说明:addl是可选的,用于指定在每个文件结尾添加一个换行符;
假设在你的hdfs集群上有一个/user/hadoop/output目录
里面有作业执行的结果(多个文件组成)part-000000,part-000001,part-000002
然后就可以在本地使用vi local_file查看内容了
(12)ls命令
ls命令查看当前目录下的信息
使用方法:hadoop fs -ls <args>
如果是 文件 ,则按照如下格式返回文件信息:
文件名 <副本数>文件大小 修改日期 修改时间 权限 用户ID 组ID
如果是 目录 ,则返回它直接子文件的一个列表,就像在UNIX中一样。目录返回i额表的信息如下:
目录名<dir>修改日期 修改时间 权限 用户ID 组ID
返回值
成功返回0,失败返回-1
(13)lsr命令
lsr命令是-ls命令的递归版,类似于UNIX中的ls-r。
使用方法:hadoop fs -lsr <args>
(14)movefromLocal命令
复制一份本地文件到hdfs,当成功后,删除本地文件
使用方法:dfs -moveFromLocal <src> <dst>
(14.5)moveToLocal命令
类似于-get,但是当复制完成后,会删除hdfs上的文件
使用方法:moveToLocal <src> <localDest>
(15)mv命令
将文件从源路径移动到目标路径。这个命令允许有多个源路径,此时目标路径必须是一个目录
使用方法:hadoop fs -mv URI [URI.....] <dest>
备注:不允许在不同的文件系统间移动文件。
返回值
成功返回0,失败返回-1
(16)put 命令
put命令从本地文件系统中复制单个或多个源路径到目标文件系统,也支持从标准输入中读取输入写入目标文件系统
使用方法:hadoop fs -put <localsrc> .... <dst>
(17)rm命令
rm命令删除指定的文件,只删除非空目录和文件。
使用方法:hadoop fs -rm URI [URI......]
请参考rmr命令了解递归删除。
(18)rmr命令
rmr命令是delete命令的递归版本
使用方法:hadoop fs -rmr URI [URI.......]
返回值
成功返回0,失败返回-1
(19)setrep命令
setrep命令可以改变一个文件的副本系数。
使用方法:hadoop fs -setrep [-R] <path>
参数说明:-R 选项用于递归改变目录下所有文件的副本系数
返回值
成功返回0,失败返回-1
(20)stat命令
stat命令用于返回指定路径的统计信息
使用方法:hadoop fs -stat URI [URI......]
返回值
成功返回0,失败返回-1
(21)tail命令
tail命令将文件尾部1KB的内容输出到stdout。支持-f选项,行为和UNIX中一致
使用方法:hadoop fs -tail [-f] URI
返回值
成功返回0,失败返回-1
(22)test命令
test命令是检查命令,可以检查文件是否存在、文件的大小等。
使用方法:hadoop fs -test -[ezd] URI
(23)text命令
text命令用于将源文件输出问文本格式
使用方法:hadoop fs -text <src>
允许的格式是zip和TextRecordInputStream。
(24)touchz 命令
touchz命令用于创建一个0字节的空文件。
使用方法: hadoop fs -touchz URI [URI....]
返回值
成功返回0,失败返回-1