jdk8-x64
hadoop-2.7.7.tar.gz
scala-2.12.11
spark-2.4.0-bin-hadoop2.7.tgz
1、配置 hadoop-env.cmd 文件里的 JAVA_HOME,因为路径不能出现空格,Program Files 用 PROGRA~1 代替
::set JAVA_HOME=%JAVA_HOME%
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_111
2、修改 \etc\hadoop 下的 hadoop-env.cmd 文件
3、直接启动,发现报错
4、将报错的关键信息记录下来
5、问题描述与解决办法
问题描述:
解决办法:
6、去hadoop2.7.7的官方文档查看
http://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-common/SingleCluster.html
7、Configuration(配置文件)
etc/hadoop/core-site.xml
fs.defaultFS
hdfs://localhost:9000
etc/hadoop/hdfs-site.xml
dfs.replication
1
8、Execution(执行操作)
(1)格式化hdfs硬盘 Format the filesystem: $ bin/hdfs namenode -format
Windows下是执行cmd命令,cd 到 hadoop 安装目录的 bin 目录下执行 hdfs namenode -format 命令
然后发现错误
解决办法:https://github.com/steveloughran/winutils 上GitHub上下载 winutils-master.zip 文件,
然后解压文件找到 hadoop 对应版本的 winutils.exe 文件,放到 /bin 目录下
然后放到 /bin 目录下,重新执行 hdfs namenode -format 命令,发现hadoop安装目录的磁盘下
tmp\hadoop-com\dfs\name\current 目录下创建了hdfs的原数据信息,cmd窗口也没报错,说明格式化成功
(2)Start NameNode daemon and DataNode daemon: $ sbin/start-dfs.sh
Windows下是执行cmd命令,cd 到 hadoop 安装目录的 sbin 目录下执行 start-dfs.cmd 命令
弹出了两个窗口,一个 NameNode 和一个 DataNode ,同时也报了一个错误,往下分析
问题描述: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 问题分析: 原数据信息已经在本地 D 盘初始化了,但是启动hdfs的时候读取的却是C盘下的路径 解决办法: 1、把hadoop的安装目录移动到 C盘重新执行 2、找配置文件,设置 hdfs读取的路径为安装路径或者写成绝对路径
(3)Browse the web interface for the NameNode; by default it is available at: NameNode - http://localhost:50070/
9、YARN on a Single Node
(1)etc/hadoop/mapred-site.xml:
mapreduce.framework.name
yarn
(2)etc/hadoop/yarn-site.xml:
yarn.nodemanager.aux-services
mapreduce_shuffle
(3)Start ResourceManager daemon and NodeManager daemon: $ sbin/start-yarn.sh
Windows下启动 yarn,执行 /sbin 目录下的 start-yarn.cmd 命令
(4)Run a MapReduce job. stop the daemons with: $ sbin/stop-yarn.sh
Windows下关闭 yarn,执行 /sbin 目录下的 stop-yarn.cmd 命令
10、根据权威的官方网站可知,namenode和DataNode的原数据目录配置是在 etc/hadoop/hdfs-site.xml 文件里边
hadoop集群版配置: http://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-common/ClusterSetup.html
dfs.replication
1
dfs.namenode.name.dir
../dir/namenode
dfs.datanode.data.dir
../dir/datanode
11、继续hdfs的启动步骤
执行完 hdfs namenode -format 之后,根据comand info 可以发现,NameNode的目录已经初始化到安装路径的 dir 目录下
进入 \dir\namenode\current 目录查看,hdfs的NameNode初始化完成
进入/sbin目录下,启动 hdfs:start-dfs.cmd 之后,弹出了NameNode和DataNode窗口,又出现了报错
问题描述: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 问题描述: 无法加载hadoop的本地库到Windows平台,需要在合适的地方编译Java class 问题分析: hadoop 本地库无法被加载,原因是Apache提供的hadoop本地库是32位的, 而在64位的服务器上就会有问题,因此需要自己编译64位的版本。 问题解决: 方法 1 :将 hadoop native library 加到环境变量中,重新执行 start-dfs.cmd 方法 2 :上GitHub:https://github.com/steveloughran/winutils 下载对应的编译版本
方法 1: 将 hadoop 自带的 lib 库加至环境变量后,执行 start-dfs.cmd 发现还是不行
方法 2 :下载网站给编译好的 lib 库:http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.7.0.tar
12、执行 /sbin/start-yarn.cmd,弹出resourcemanager和nodemanage两个窗口
访问地址:http://localhost:8088/cluster ,Hadoop集群配置成功
13、一键关闭集群执行 /sbin/stop-all..cmd,一键启动hadoop集群点击 /sbin/start-all.cmd
集群运行之后有四个窗口:NameNode、DataNode、ResourceManage、NodeManager,表明运行成功
hadoop集群信息访问:http://localhost:50070/ hadoop集群job运行访问:http://localhost:8088/
启动之后,可以进入 cmd 执行 hadoop shell 命令,集群默认没有目录和文件,这里创建几个目录
hadoop version
hadoop fs -ls /
hadoop fs -mkdir /hive
hadoop fs -mkdir /hbase
hadoop fs -mkdir /home
hadoop fs -mkdir /tmp
hadoop fs -mkdir /usr/local
访问 hdfs web http://localhost:50070/
1、启动spark \Spark\spark-2.4.2-bin-hadoop2.7\bin\spark-shell.cmd
2、访问spark UI:http://127.0.0.1:4040/jobs/