单机模式

Reads: 767 Edit

搭建hadoop单机模式

下载安装jdk(目前hadoop3只支持java8)

JDK安装包可以从oracle官网(https://www.oracle.com/java/technologies/downloads/ )下载,然后使用WinSCP上传到虚拟机的Ubuntu系统。

sudo tar -xzvf jdk-8u202-linux-x64.tar.gz -C /usr/local

配置jdk环境变量

打开~/.bashrc文件

$ sudo vim ~/.bashrc

然后在文件末尾加入以下代码,保存退出。

export JAVA_HOME=/usr/local/jdk1.8.0_202
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

使环境变量生效

$ source  ~/.bashrc

查看java版本

$ java -version

安装成功后,会出现如下信息:

big-38

下载安装hadoop

Hadoop安装包可以从hadoop官网(https://hadoop.apache.org )下载,然后使用WinSCP上传到虚拟机的Ubuntu系统。

$ sudo mv hadoop-3.3.4.tar.gz /usr/local
$ sudo tar -xzvf hadoop-3.3.4.tar.gz

配置hadoop环境变量(可以在bashrc或profile文件中添加)

打开~/.bashrc文件

$ sudo vim ~/.bashrc

然后在文件末尾加入以下代码,保存退出。

export HADOOP_HOME=/usr/local/hadoop-3.3.4
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
export PATH=${HADOOP_HOME}/sbin:${HADOOP_HOME}/bin:$PATH

使环境变量生效

$ source  ~/.bashrc

查看Hadoop版本信息

$ hadoop version

安装成功后,会出现如下信息:

big-39

安装好Hadoop后,默认就是单机模式。该模式下不需要对配置文件进行修改,且使用本地文件系统,而不是分布式文件系统。

单机模式下的应用

hadoop程序的./share/hadoop/mapreduce目录下存放了hadoop自带的java应用程序包,这里介绍下hadoop-mapreduce-examples-3.3.4.jar的应用。

字数统计

切换到hadoop目录

$ cd /usr/local/hadoop-3.3.4

创建input目录

$ sudo mkdir wcinput

将“song.txt”文件通过WinSCP上传到虚拟机的Ubuntu系统,并移动到wcinpu目录下。

$ sudo mv song.txt /usr/local/hadoop-3.3.4/wcinput/

song.txt的内容如下:

big41

回到/usr/local/hadoop-3.3.4下,执行程序。其中“./bin/hadoop jar”是hadoop的程序命令;“./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar”是具体要执行的java包;“wordcount”是java包的参数,表明要运行wordcount功能;“ wcinput”是要统计的目录,该目录下所有文件都会被统计;“wcoutput”是统计完成后会将统计结果放进wcoutput目录。

$ cd /usr/local/hadoop-3.3.4

$ sudo ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount wcinput wcoutput

程序完成后,切换到wcoutput目录,查看统计结果

$ cd wcoutput/

如果运行成功,wcoutput目录下会生成part-r-00000和_SUCCESS 两个文件,其中part-r-00000文件中存放了统计结果。但需要注意的是不能直接使用vim查看,需要使用hadoop分布式文件系统的cat命令来查看。

cat part-r-00000

结果如下:

big42

正则匹配字数统计

这里将etc/hadoop/目录下的xml格式文件复制到grepinput文件夹下,然后统计文件中开头为特定字符的单词数量。

创建grepinput目录,注意再hadoop安装目录下创建

$ sudo mkdir grepinput

复制etc/hadoop/目录下的xml文件

$ sudo cp etc/hadoop/*.xml grepinput

执行程序。其中“bin/hadoop jar”是hadoop的程序命令;“share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar”是具体要执行的java包;“grep”是java包的参数,表明统计正则匹配到的字符出现的个数;“ grepinput”是要统计的目录,该目录下所有文件都会被统计;“grepoutput”是统计完成后会将统计结果放进wcoutput目录;'ano[a-z.]+'是正则匹配式子,表示开头为dfs的单词。

$ sudo bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar grep grepinput grepoutput 'ano[a-z.]+'

查看结果

cd grepoutput/
cat part-r-00000

统计结果如下所示

big43


获取案例软件和数据,请关注微信公众号并回复:big_dt2


Comments

Make a comment