说实话,之前已经很久没接触大数据的东西了,阿粉前几天看了一个新闻,说某应届生在毕业时间拿到了华为的大数据的岗位提供的Offer,并且月薪资竟然给出了30K的高价,瞬间让我把之前放在一边的大数据重现捡了起来,于是开始自己手动搭建Hadoop框架。而由于条件有限,阿粉在这里只能给大家搭建一个关于单机的环境了。

<–more–>

1.什么是大数据

来自百度百科的解释是这样的:

大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

其实这么说,谁都不理解,不知道大家有没有在逛淘宝的时候发现,你之前在其他的地方搜索过的所有的东西,然后在淘宝的下面会给你关联出很多的内容,你之前因为女友生日,你搜索了口红,结果下面出现了各种 MAC ,TF ,Dior,各种各样的推荐,而这就是大数据的结果。

2.Hadoop是什么?

Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。

而今天我们只是做单机版本的Hadoop,也就是先不做集群处理,那么我们就准备开始把。

而关于如何安装虚拟机这一步骤,阿粉就不在给大家一一讲述了,毕竟这个虚拟机在百分之80的开发人员的电脑中都是存在的,那么就开始吧。

2.1 安装Ubuntu系统

先下载Ubuntu系统的iso镜像,如图所示:

下载完成,这时候我们要安装虚拟机了,新建虚拟机:

注意这个地方可以选择稍后安装操作系统,因为直接选择镜像的时候,阿粉遇到过好几次启动中途直接不动的情况。

而安装完成之后,接下来我们去选择虚拟机设置中的CD/DVD,这个时候我们再去选择镜像文件,

安装虚拟机安装完成,接下来阿粉就是该把系统搞好了,

安装的时候一定要勾选上清除整个磁盘,并且安装系统,

安装到输入用户和密码的时候,我选择的是输入自己的用户名 master ,密码123456,及其简单,但是好记,经过漫长的等待,等待,阿粉终于等他安装完成了,

安装完成重启之后,我们就要进行接下来的安装了。

2.2安装JDK

在我们安装这个JDK这些内容之前,我们先把这个 VmWare-Tools 安装上 sudo ./vmware-install.pl,这是在我们虚拟机上的有一个安装VmWare-Tools,点击之后,桌面会出现一个光盘累死的文件,提取里面的文件之后执行命令即可,然后关机重启一次。

首先,我们做 Java 开发的是不是肯定得先把 Java 环境给他装上呢?毕竟 Hadoop也是使用 Java 开发的,必须得给他 Java 的环境呀,我们还是选择 jdk8,不选择 jdk11,毕竟版本新,虽然功能会多,但是有太多的坑阿粉不想去踩。

在我们输入 java -version 的时候,提示我们找不到,并且给出了,我们不是root的用户,所以我们每次要在前面加上sudo,

sudo apt-get update 而我们在安装 VmWare-Tools 的时候也是需要我们去安装这个套件,那就来,直接给他安装了

不得不说,这网络是真的墨迹,中间有一些东西,阿粉表示安装的时候会占用你绝大部分的时间在网络下载上,而离线安装呢,又非常的烦,所以,那还是继续网络安装吧。

那我们继续来安装 JDK吧,之前看到提示说,sudo apt install openjdk-8-jre-headless,

安装完成之后继续校验一下 java -version 吧,

我们可以看一下这个 Java 到底是安装在哪哪一个目录下,顺带着可以去配置一下环境变量不是,命令来了

  • update-alternatives –display java

我们先把这个路径复制一下,在配置 JAVA_HOME 的时候是要用到的,在这之前我们需要设置一下 SSH ,

2.3 安装 SSH

我们先来安装 SSH 等安装结束之后,阿粉再给大家解释为什么要安装 SSH 设置无密码登录是个什么意思。

sudo apt-get install ssh 安装SSH

sudo apt-get install rsync 安装 rsync

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 产生 SSH 密钥之后继续进行后续的身份验证

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 把产生的密钥放入许可文件中。

看完这个之后,大家有没有想起来我们在使用 GitHub的时候,也使用过 SSH,那时候是有公钥和私钥的存在,而我们设置 SSH 无密码登录,是为了在我们安装完 Hadoop之后,我们启动的时候不需要频繁的去输入账号和密码,而那时候就是通过我们设置的 SSH 来验证用户的,所以我们在这里设置了一波。

2.4 下载安装Hadoop

这里我们不使用离线安装,因为离线安装很多是因为没时间,而阿粉在这里下载着,顺带着可以去干点其他的事情,时间最大化,

这也是阿粉选择使用 Ubuntu的原因,之前使用 CentOS的时候,没有桌面,去寻找网址,是在不太好弄,我们这里直接百度 Hadoop ,网站直接 Download ,然后找一个相对来说稳定的版本,我还是选择了 Hadoop2.x 的版本,没有选择 3.x ,我们这里使用 2.9 的版本把,把网址复制,

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

接下来我们就开始解压了,sudo tar -zxvf hadoop-2.9.2.tar.gz ,解压完,我们找个目录给他移动过去,sudo mv hadoop-2.9.2 /usr/local/hadoop

这时候我们看一下这个 Hadoop 安装目录里面都有个啥东西

  • bin 存各种运行文件 Hadoop,HDFS,YARN

  • sbin 各种shell脚本文件

  • etc Hadoop的配置文件

  • logs 日志,

剩下的文件阿粉就不解释了,毕竟lib这文件夹里面放的,大家心里都清楚是个什么东西。

2.5 Hadoop的环境变量配置

sudo gedit ~/.bashrc 这时候会打开一个文件,我们在末尾补充上

1
2
3
4
5
6
7
8
9
10
11
12
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-DJava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

而这些内容是分别用来设置 java 的路径,还有 Hadoop的环境变量的一些配置,而接下来我们在不重启机器的情况下,我们用命令让我们的配置生效,

source ~/.bashrc

那么接下来我们就该修改 Hadoop配置文件了,

把这里的环境变量修改为我们之前复制的路径 修改环境变量/usr/lib/jvm/java-8-openjdk-amd64

接下来我们修改 core-site.xml 文件

sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml 修改HDFS的名称,

我们在配置文件里面的 中加入如下的代码

1
2
3
4
5
<property>
	<name>fs.default.name</name>
	<value>hdfs://localhost:9000</value>
</property>

同样我们也要修改yarn-site.xml 文件

sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml

1
2
3
4
5
6
7
8
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<property>
	<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
	<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

接下来,我们设置一下,mapred-site.xml ,这个是用来监控任务执行情况的,

sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml 复制模板文件到site文件中

同时进行修改

sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml

1
2
3
4
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>

最后我们就来设置一下数据存储的目录

sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>
<property>
	<name>dfs.namenode.name.dir</name>
	<value>file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>
<property>
	<name>dfs.datanode.data.dir</name>
	<value>file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>

2.6 格式化HDFS的目录

sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode

sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

同时授权给我们的用户 master ,sudo chown master:master -R /usr/local/hadoop/

下面我们格式化之后,就可以启动了

hadoop namenode -format 格式化HDFS

start-yarn.sh 启动Hadoop

start-yarn.sh 启动MapReduce的Yarn

那么我们来看看安装的吧,Hadoop ResourceManager Web 界面 http://localhost:8088

HDFS WEB UI界面 –http://localhost:50070

安装完了,启动好了,你学会了么?

文献参考

《Hadoop Spark大数据巨量分析与机器学习整合开发实战 》

Java Geek Tech wechat
欢迎订阅 Java 极客技术,这里分享关于 Java 的一切。