hadoop是由java 语言编写的主从结构分布式计算存储架构
准备工作:
-
操作系统: Ubuntu16.04
-
软件安装包:jdk-8u171-linux-x64.tar.gz ; hadoop-2.6.5.tar.gz
-
配置环境:3台虚拟机
master:192.168.122.10 node1 :192.168.122.11 node1 :192.168.122.12
- 前提条件:三台虚拟机已经配置过SSH和主机名,如果没有,请自行百度配置。
第一步:安装jdk
因为hadoop是由java编写的,所以底层需要依赖java环境, jdk下载地址,可选择合适的版本
在master上操作
1.下载jdk
用wget下载,如下
root@master:/opt/tar# wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gzroot@master:/opt/tar# ljdk-8u171-linux-x64.tar.gz
2.解压tar包
可以自己先创一个目录来解压方便以后管理,这次我就解压在opt目录下
root@master:/opt/tar# tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/root@master:/opt# ljdk1.8.0_171/
- 这里可能会出现问题3,无法解压的问题。解决方法参见可能遇见的问题3
3.将jdk添加到环境变量中
root@master:/opt# vim /etc/profile
在文件末尾添加
export JAVA_HOME=/opt/jdk1.8.0_171export PATH=$PATH:$JAVA_HOME/bin
4.刷新环境变量文件
root@master:/opt# echo $JAVA_HOME #没刷新前的结果为空root@master:/opt# source /etc/profile #刷新root@master:/opt# echo $JAVA_HOME/opt/jdk1.8.0_171root@master:/opt# java -version #看java版本openjdk version "1.8.0_171"OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11)OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
-
到这里master的上面的jdk就安装好了 接下来就是将从节点上也安装,这里就可以将master上解压好和修改好的/etc/profile文件直接拷贝到从节点上了,这样比较方便,不然还得重复配置。
-
这里我还是将jdk放在从节点的/opt目录下
root@master:/opt# scp -r jdk1.8.0_171/ node1:/opt #拷贝jdk到node1root@master:/opt# scp -r jdk1.8.0_171/ node2:/opt #拷贝jdk到node2root@master:/opt# scp -r /etc/profile node1:/etc/ #拷贝环境变量文件到node1root@master:/opt# scp -r /etc/profile node2:/etc/ #拷贝环境变量文件到node2
在node1和node2上执行
source /etc/profile #刷新
- 到这里三台虚拟机的JDK就全部安装好了!
第二步:安装hadoop
从网站 找到合适的hadoop的二进制版本,本次我用的是2.6.5
1. 下载
root@master:/opt/tar# wget http://www-eu.apache.org/dist/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
2.解压
root@master:/opt/tar# tar -zxvf hadoop-2.6.5.tar.gz -C /opt/root@master:/opt# lhadoop-2.6.5/ jdk1.8.0_171/
3.修改配置文件
进入/opt/hadoop-2.6.5/etc/hadoop目录下,这里面都是配置文件
root@master:/opt/hadoop-2.6.5/etc/hadoop# lcapacity-scheduler.xml hadoop-env.sh httpfs-env.sh kms-env.sh mapred-env.sh ssl-server.xml.exampleconfiguration.xsl hadoop-metrics2.properties httpfs-log4j.properties kms-log4j.properties mapred-queues.xml.template yarn-env.cmdcontainer-executor.cfg hadoop-metrics.properties httpfs-signature.secret kms-site.xml mapred-site.xml.template yarn-env.shcore-site.xml hadoop-policy.xml httpfs-site.xml log4j.properties slaves yarn-site.xmlhadoop-env.cmd hdfs-site.xml kms-acls.xml mapred-env.cmd ssl-client.xml.example
1.修改hadoop-env.sh
里面是启动的脚本文件,将jdk导入
root@master:/opt/hadoop-2.6.5/etc/hadoop# echo $JAVA_HOME #获取jdk绝对路径/opt/jdk1.8.0_171root@master:/opt/hadoop-2.6.5/etc/hadoop# vim hadoop-env.sh
写入export JAVA_HOME=/opt/jdk1.8.0_171保存退出
2.修改core-site.xml
核心配置文件
root@master:/opt/hadoop-2.6.5/etc/hadoop# vim core-site.xml
写入
fs.defaultFS hdfs://master:9000 hadoop.tmp.dir file:/opt/hadoop-2.6.5/hadooptmp
里面内容以key-value形式书写,规定hadoop的默认文件系统为hdfs以对应的路径和端口(9000)。hadoop产生的临时文件存放地址(/opt/hadoop-2.6.5/hadooptmp)
3.hdfs-site.xml
这个文件不配置也行,就会用默认值,配置了就根据配置的内容来
root@master:/opt/hadoop-2.6.5/etc/hadoop# vim hdfs-site.xml
dfs.namenode.name.dir file:/opt/hadoop-2.6.5/hadooptmp dfs.datanode.data.dir file:/opt/hadoop-2.6.5/hadooptmp dfs.replication 1
在这里面我配置了hdfs文件的副本数,默认为3份,但因为我的虚拟机空间不足,这里就配置了1份。大家也可以根据实际要求进行配置。
- (图中的haoop改成hadoop,这里笔误!)
4.mapred-site.xml
这个文件是没有的,只提供一个tmp文件
root@master:/opt/hadoop-2.6.5/etc/hadoop# cp mapred-site.xml.template mapred-site.xmlroot@master:/opt/hadoop-2.6.5/etc/hadoop# vim mapred-site.xml
mapreduce.framework.name yarn
mapreduce运行平台的名称(这里指定为yarn)
5.yarn-site.xml
root@master:/opt/hadoop-2.6.5/etc/hadoop# vim yarn-site.xml
yarn.resourcemanager.hostname master yarn.nodemanager.aux-services mapreduce_shuffle
这里面配置yarn的resourcemanager在哪个节点上运行(这里我I设置为master),和yarn需要的shuffle服务。
- 到这里master上的hadoop就配置好了,接下来就这这个hadoop文件复制到从节点上
root@master:/opt# scp -r hadoop-2.6.5/ node1:/opt/root@master:/opt# scp -r hadoop-2.6.5/ node2:/opt/
2. 为Hadoop添加环境变量
输入命令:vim /etc/profile
添加如下内容: export HADOOP_HOME=/opt/hadoop-2.6.5 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
刷新
source /etc/profile #刷新
- 将这些内容也写到从节点的文件下,或者通过scp传过去 从节点刷新。
3. 配置slaves
root@master:/opt/hadoop-2.6.5/etc/hadoop# vim slaves
- 如图所示配置意味着master节点此时既充当主节点也充当从节点(这样可以少开一个虚拟机,节省资源,服务器性能好可以不这样做)
4. 格式化文件系统
输入命令:hdfs namenode -format 看到高亮语句证明格式化成功! Storage directory /root/training/hadoop-2.6.5/hadooptmp has been successfully formatted.
- 这里可能会出现格式化失败的问题,参见可能出现的问题1。
安装成功!
测试
启动namenode
root@master:/opt/hadoop-2.6.5/sbin# hadoop-daemon.sh start namenodestarting namenode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-namenode-master.outroot@master:/opt/hadoop-2.6.5/sbin# jps2420 NameNode3406 Jps
成功!其中hadoop-daemon.sh是一个启动脚本
关闭namenode
root@master:/opt/hadoop-2.6.5/sbin# hadoop-daemon.sh stop namenodestopping namenoderoot@master:/opt/hadoop-2.6.5/sbin# jps11754 Jps
一键启动所有节点(集群) namenode+datanode
主节点
root@master:/opt/hadoop-2.6.5/etc/hadoop# start-all.shThis script is Deprecated. Instead use start-dfs.sh and start-yarn.shStarting namenodes on [master]master: starting namenode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-namenode-master.outnode1: starting datanode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-datanode-node1.outnode2: starting datanode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-datanode-node2.outlocalhost: starting datanode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-datanode-master.outStarting secondary namenodes [0.0.0.0]0.0.0.0: starting secondarynamenode, logging to /opt/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-master.outstarting yarn daemonsstarting resourcemanager, logging to /opt/hadoop-2.6.5/logs/yarn-root-resourcemanager-master.outnode1: starting nodemanager, logging to /opt/hadoop-2.6.5/logs/yarn-root-nodemanager-node1.outnode2: starting nodemanager, logging to /opt/hadoop-2.6.5/logs/yarn-root-nodemanager-node2.outlocalhost: starting nodemanager, logging to /opt/hadoop-2.6.5/logs/yarn-root-nodemanager-master.outroot@master:/opt/hadoop-2.6.5/etc/hadoop# jps14961 ResourceManager15204 NodeManager13125 NameNode16188 Jps
从节点查看
root@node1:/opt# jps20656 NodeManager19927 DataNode21660 Jps
root@node2:~# jps17553 DataNode19514 Jps18314 NodeManager
成功!
在hdfs中创建一个目录firstTestDir
root@master:/opt/hadoop-2.6.5/hadooptmp# hadoop dfs -ls / #查看原始状态下的目录(没有)DEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.root@master:/opt/hadoop-2.6.5/hadooptmp# hadoop dfs -mkdir /firstTestDir #创建目录DEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.root@master:/opt/hadoop-2.6.5/hadooptmp# hadoop dfs -ls / #查看目录,已经存在DEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.Found 1 itemsdrwxr-xr-x - root supergroup 0 2018-05-13 21:13 /firstTestDir
向这个目录下上传文件
这里我将root下的a.txt文件上传为例
root@master:~# la.txt root@master:~# hadoop dfs -put ./a.txt /firstTestDir #上传文件a.txtDEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.root@master:~# hadoop dfs -ls /firstTestDir #查看是否成功,ok!DEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.Found 1 items-rw-r--r-- 1 root supergroup 22002 2018-05-13 21:14 /firstTestDir/a.txt
- 这里可能会出现上传失败的问题,参见可能的问题2。
运行wordcount
UI查询
访问 HDFS的Web Console:
访问 Yarn的Web Console:
关闭所有组件
root@master:/opt/hadoop-2.6.5/etc/hadoop# stop-all.sh
可能遇到的问题:
1.格式化时出现问题
root@master:/opt/hadoop-2.6.5/etc/hadoop# hdfs namenode –format18/05/12 20:50:16 INFO namenode.NameNode: STARTUP_MSG: /************************************************************STARTUP_MSG: Starting NameNodeSTARTUP_MSG: host = localhost/127.0.0.1STARTUP_MSG: args = [–format]STARTUP_MSG: version = 2.6.5STARTUP_MSG: classpath = /opt/hadoop-2.6.5/etc/hadoop:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-httpclient-3.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/stax-api-1.0-2.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/avro-1.7.4.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jackson-jaxrs-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/snappy-java-1.0.4.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/httpclient-4.2.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/httpcore-4.2.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/slf4j-api-1.7.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/zookeeper-3.4.6.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/guava-11.0.2.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jackson-mapper-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/mockito-all-1.8.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jersey-core-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-compress-1.4.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jetty-util-6.1.26.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-cli-1.2.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jasper-runtime-5.5.23.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/hadoop-auth-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/apacheds-kerberos-codec-2.0.0-M15.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/activation-1.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/xz-1.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/curator-recipes-2.6.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jaxb-impl-2.2.3-1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-logging-1.1.3.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jetty-6.1.26.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-collections-3.2.2.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/paranamer-2.3.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/servlet-api-2.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jaxb-api-2.2.2.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jersey-server-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jettison-1.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-beanutils-1.7.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jersey-json-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/protobuf-java-2.5.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/log4j-1.2.17.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/api-asn1-api-1.0.0-M20.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jets3t-0.9.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-beanutils-core-1.8.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/junit-4.11.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/htrace-core-3.0.4.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/asm-3.2.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jsr305-1.3.9.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/java-xmlbuilder-0.4.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jasper-compiler-5.5.23.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-codec-1.4.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/curator-framework-2.6.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/apacheds-i18n-2.0.0-M15.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-configuration-1.6.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/api-util-1.0.0-M20.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-lang-2.6.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-math3-3.1.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jsch-0.1.42.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-el-1.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/netty-3.6.2.Final.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/curator-client-2.6.0.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jsp-api-2.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jackson-xc-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/jackson-core-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-io-2.4.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/hadoop-annotations-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/gson-2.2.4.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-digester-1.8.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/xmlenc-0.52.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/hamcrest-core-1.3.jar:/opt/hadoop-2.6.5/share/hadoop/common/lib/commons-net-3.1.jar:/opt/hadoop-2.6.5/share/hadoop/common/hadoop-nfs-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/hadoop-common-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/common/hadoop-common-2.6.5-tests.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/guava-11.0.2.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jackson-mapper-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jersey-core-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jetty-util-6.1.26.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/commons-cli-1.2.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jasper-runtime-5.5.23.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/commons-logging-1.1.3.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jetty-6.1.26.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/commons-daemon-1.0.13.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/xml-apis-1.3.04.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/servlet-api-2.5.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jersey-server-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/protobuf-java-2.5.0.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/log4j-1.2.17.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/htrace-core-3.0.4.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/asm-3.2.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jsr305-1.3.9.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/xercesImpl-2.9.1.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/commons-codec-1.4.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/commons-lang-2.6.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/commons-el-1.0.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/netty-3.6.2.Final.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jsp-api-2.1.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/jackson-core-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/commons-io-2.4.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/lib/xmlenc-0.52.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/hadoop-hdfs-2.6.5-tests.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/hadoop-hdfs-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/hdfs/hadoop-hdfs-nfs-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-httpclient-3.1.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/stax-api-1.0-2.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jackson-jaxrs-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/zookeeper-3.4.6.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/guava-11.0.2.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jackson-mapper-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jersey-core-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-compress-1.4.1.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jetty-util-6.1.26.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-cli-1.2.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/activation-1.1.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/xz-1.0.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jaxb-impl-2.2.3-1.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-logging-1.1.3.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jetty-6.1.26.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-collections-3.2.2.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/servlet-api-2.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jaxb-api-2.2.2.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jersey-server-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jettison-1.1.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jersey-json-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jline-0.9.94.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/protobuf-java-2.5.0.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/log4j-1.2.17.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/guice-3.0.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/asm-3.2.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jersey-guice-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jsr305-1.3.9.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/leveldbjni-all-1.8.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jersey-client-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-codec-1.4.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/guice-servlet-3.0.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-lang-2.6.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/netty-3.6.2.Final.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/aopalliance-1.0.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jackson-xc-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/jackson-core-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/commons-io-2.4.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/lib/javax.inject-1.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-server-resourcemanager-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-server-web-proxy-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-api-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-applications-distributedshell-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-server-applicationhistoryservice-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-server-common-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-applications-unmanaged-am-launcher-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-client-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-common-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-server-tests-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-server-nodemanager-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/yarn/hadoop-yarn-registry-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/avro-1.7.4.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/snappy-java-1.0.4.1.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/jackson-mapper-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/jersey-core-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/commons-compress-1.4.1.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/xz-1.0.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/paranamer-2.3.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/jersey-server-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/protobuf-java-2.5.0.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/log4j-1.2.17.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/guice-3.0.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/junit-4.11.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/asm-3.2.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/jersey-guice-1.9.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/leveldbjni-all-1.8.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/guice-servlet-3.0.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/netty-3.6.2.Final.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/aopalliance-1.0.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/jackson-core-asl-1.9.13.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/commons-io-2.4.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/hadoop-annotations-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/hamcrest-core-1.3.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/lib/javax.inject-1.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.5-tests.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-common-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-app-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-plugins-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-shuffle-2.6.5.jar:/opt/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-client-hs-2.6.5.jar:/opt/hadoop-2.6.5/contrib/capacity-scheduler/*.jarSTARTUP_MSG: build = https://github.com/apache/hadoop.git -r e8c9fe0b4c252caf2ebf1464220599650f119997; compiled by 'sjlee' on 2016-10-02T23:43ZSTARTUP_MSG: java = 1.8.0_171************************************************************/18/05/12 20:50:16 INFO namenode.NameNode: registered UNIX signal handlers for [TERM, HUP, INT]18/05/12 20:50:16 INFO namenode.NameNode: createNameNode [–format]Usage: java NameNode [-backup] | [-checkpoint] | [-format [-clusterid cid ] [-force] [-nonInteractive] ] | [-upgrade [-clusterid cid] [-renameReserved] ] | [-upgradeOnly [-clusterid cid] [-renameReserved ] ] | [-rollback] | [-rollingUpgrade ] | [-finalize] | [-importCheckpoint] | [-initializeSharedEdits] | [-bootstrapStandby] | [-recover [ -force] ] | [-metadataVersion ] ]18/05/12 20:50:16 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1************************************************************/
原因 hdfs namenode –format "-format"中的-是中文横线,改成英文就好了
2. 通过hadoop dfsadmin -report命令查看到的全是0值,或者上传文件时提示失败,报错是没有可用的datanode。
问题:
19/03/16 15:57:42 WARN hdfs.DFSClient: DataStreamer Exceptionorg.apache.hadoop.ipc.RemoteException(java.io.IOException): File /firstTestDir/test-hafs-uploadFile.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
详细内容:
root@master:~# hadoop dfs -put ./test-hafs-uploadFile.txt /firstTestDir DEPRECATED: Use of this script to execute hdfs command is deprecated.Instead use the hdfs command for it.19/03/16 15:57:42 WARN hdfs.DFSClient: DataStreamer Exceptionorg.apache.hadoop.ipc.RemoteException(java.io.IOException): File /firstTestDir/test-hafs-uploadFile.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation. at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1559) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3245) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:663) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:482) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619) at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:975) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2040) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2036) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1692) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2034) at org.apache.hadoop.ipc.Client.call(Client.java:1470) at org.apache.hadoop.ipc.Client.call(Client.java:1401) at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232) at com.sun.proxy.$Proxy9.addBlock(Unknown Source) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:399) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:187) at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) at com.sun.proxy.$Proxy10.addBlock(Unknown Source) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1528) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1345) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:587)put: File /firstTestDir/test-hafs-uploadFile.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
解决方法,
- 1.可能是/etc/hosts文件里的主机名和ip对应有问题,可删除没用的对应或易混淆的。
- 2.防火墙没关
- 3.ssh没配成功
- 4.可能多次格式化后namenode和datanode上的clusterID不一致,删除主从节点上的hadoop-2.6.5/hadooptmp文件夹下的所有内容(rm -rf hadooptmp/*),重新格式化。
- 5.节点的内存。
3.无法解压jdk
问题:
root@master:/opt/tar# tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/gzip: stdin: not in gzip formattar: Child returned status 1 tar: Error is not recoverable: exiting now
解决方法: 1.文件类型不同 tar包压缩的时候用cvf参数,解压的时候用xvf参数 或压缩的时候用czvf参数,解压的时候用xzvf参数
2.文件本身损坏 可能是由于我在线下载下来的安装包本身就是损坏的。
怎么确定是否损坏呢?
命令:ls -lht 查看文件大小
3.分析一下文件类型
# 错误的文件类型root@master:/opt/tar# file jdk-8u171-linux-x64.tar.gzjdk-8u171-linux-x64.tar.gz: HTML document, ASCII text, with very long lines, with CRLF line terminators# 正确的文件类型root@master:/opt/tar# file jdk-8u201-linux-x64.tar.gz jdk-8u201-linux-x64.tar.gz: gzip compressed data, last modified: Sat Dec 15 19:48:30 2018, from Unix
错误的竟然是HTML文档类型,这次终于知道是为什么了。软件版本更新,这个链接指向了改版本的介绍页面了,这种情况下只有去官网下载新的版本了。
文件的下载链接不是直接指向文件,而是先指向一个页面,在这个页面里才是真的下载链接,所以在前一个页面上直接保存文件,实际上保存的是一个页面。
假如属性是bz文件,就用bz文件的解压方式。
补充一下file命令:
通过file指令,我们得以辨识该文件的类型。
参 数: -b 列出辨识结果时,不显示文件名称。 -c 详细显示指令执行过程,便于排错或分析程序执行的情形。 -f<名称文件> 指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。 -L 直接显示符号连接所指向的文件的类别。 -m<魔法数字文件> 指定魔法数字文件。 -v 显示版本信息。 -z 尝试去解读压缩文件的内容。
2.重新获取tar包路径,先用浏览器打开,从弹出来的save 对话框里获取下载链接