hadoop环境搭建
来源:互联网 发布:税务金三系统网络风险 编辑:程序博客网 时间:2024/05/18 23:56
本篇博客会记录下我第一次折腾hadoop的过程。作为一个初学者,我最初按照hadoop官网上的教程来搭建环境,中间出现了些问题,各种stackoverflow,最终成功搭建了一个hadoop伪集群,并且成功运行了hadoop官方提供的map-reduce的示例jar包。
下载hadoop发行版
在http://hadoop.apache.org/releases.html上下载最新的稳定版的hadoop,如果是新手的话,推荐下载binary,而不是下载source去自己编译。我本机使用的是2.8.1版本。也可以点击此处直接下载2.8.1版本的压缩包。下载完成后,解压到一个文件夹中,接下来需要配置一下环境变量。
配置环境变量
首先添加一个环境变量HADOOP_HOME
,指向hadoop的根目录,并将HADOOP_HOME/bin
加入到path中。
如果是mac的话,直接再~/.bash_profile中加入下面两行即可
export HADOOP_HOME="~/software/hadoop-2.8.1"export PATH="$PATH:$HADOOP_HOME/bin"
由于hadoop是使用java编写的,所以,hadoop的运行依赖java环境,请在本地配置好java的运行环境。
顺利搞定以后,运行一下hadoop命令,会有如下的输出,则说明hadoop已经可以在单机环境下运行了。
$ hadoopUsage: hadoop [--config confdir] [COMMAND | CLASSNAME] CLASSNAME run the class named CLASSNAME or where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file note: please use "yarn jar" to launch YARN applications, not this command. checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the Hadoop jar and the required libraries credential interact with credential providers daemonlog get/set the log level for each daemon trace view and modify Hadoop tracing settingsMost commands print help when invoked w/o parameters.
配置hadoop
接下来要配一个伪集群,伪集群有些接近真正的集群,namenode和datanode运行在不同的进程中,大部分hadoop的命令也都一样,并且配置起来非常简单,对于hadoop的初学者而言还是不错的。
打开etc/hadoop/core-site.xml
,修改为:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://127.0.0.1:9000</value> </property></configuration>
打开etc/hadoop/hdfs-site.xml
,修改为:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/Users/zdk/software/hadoop-2.8.1/data/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/Users/zdk/software/hadoop-2.8.1/data/datanode</value> </property> <property> <name>dfs.secondary.http.address</name> <value>127.0.0.1:50090</value> </property> <property> <name>dfs.http.address</name> <value>127.0.0.1:50070</value> </property></configuration>
将上面的hadoop地址修改为你刚才设置的HADOOP_HOME
的位置。
启动namenode和datanode
启动namenode之前,需要先进行一次格式化,使用下面的命令
$ hdfs namenode -format
作为伪集群,namenode和datanode是两个独立的进程,可以分别启动。打开终端或命令行,先启动namenode
$ hdfs namenode
如果namenode启动成功了,再打开一个终端或命令行,启动datanode
$ hdfs datanode
此时,hdfs就已经启动成功了,可以通过http://localhost:50070/查看和管理。
可以输入contr+c
来关闭进程。
如果你觉得两个进程单独启动不太方便,hadoop在sbin目录下还封装了一些命令:
- 通过sbin/start-dfs.sh
来启动namenode和datanode
- 通过sbin/stop-dfs.sh
来关闭namenode和datanode
执行上面两个命令之前,需要先cd
到hadoop的根目录。
hdfs的基本操作
下面来看一下hdfs提供的命令api。之前hdfs的命令是hdfs dfs
,由于hdfs是hadoop的一部分,就被统一以hadoop
开头了,通过hadoop fs
加各种参数来操作hdfs,直接运行hadoop fs
可以查看帮助。这些命令还是比较友好的,非常类似常用的linux命令。下面我们先创建两个文件夹
$ hadoop fs -mkdir /user$ hadoop fs -mkdir /user/yourname
上传一个文件,将当前目录下的LICENSE.txt上传到hdfs上,默认会上传到你的用户目录,就是刚才创建的/user/yourname
中。
$ hadoop fs -put LICENSE.txt
列出文件
$ hadoop fs -ls /user/yournameFound 1 items-rw-r--r-- 1 yourname supergroup 99253 2017-09-07 15:52 /user/yourname/LICENSE.txt
还可以通过hadoop fs -cat filename
来查看文件内容,hadoop fs -rm filename
来删除文件等,更多命令可以运行hadoop fs
来查看帮助。
运行一个测试的map-reduce
首先,将hadoop根目录下的etc/hadoop
下的所有xml文件上传的hdfs中的input
文件夹,
$ hadoop fs -mkdir input$ hadoop fs -put etc/hadoop/*.xml input
然后通过hadoop jar
来运行测试的map-reduce jar包
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar grep input output 'dfs[a-z.]+'
如果你的hadoop版本不是2.8.1的话,需要调整jar包的名字。最终任务执行完之后,会将结果输入到output
文件夹中。
你可以通过hadoop fs -ls /user/yourname/output
来查看目录下的文件列表。
可以参考一下官网的教程
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html
- 【hadoop】hadoop环境快速搭建
- Hadoop - Hadoop开发环境搭建
- Hadoop环境搭建
- hadoop开发环境搭建
- linux搭建hadoop环境
- nutch+hadoop环境搭建
- Hadoop环境搭建-集群
- eclipse hadoop 环境搭建
- linux搭建hadoop环境
- hadoop环境搭建步骤
- MyEclipse 搭建 hadoop 环境
- Hadoop 环境搭建
- windows搭建hadoop环境
- Hadoop环境搭建
- hadoop集群环境搭建
- Hadoop环境搭建
- hadoop环境搭建问题
- hadoop单机环境搭建
- 常见的的设计模式-结构型模式(7种)
- Spring ioc详解,IOC控制反转对象bean
- HTML配色工具!在线配色工具
- ROS rviz 显示 kinect v2 点云数据
- Ubuntu命令笔记
- hadoop环境搭建
- Android总结篇系列:Android Service
- postman下载包及安装方法
- 编译器(GNU & GCC & clang & llvm)
- Android LinkedList的部分源码解析
- QT5创建线程
- HDU 6156(数位DP+乱搞)
- hadoop-2.7.3源码编译后支持的4种压缩格式
- ios json解析数据转化为中文