大数据基础 | 伪分布式hadoop集群搭建

一、搭建环境

  • VMware虚拟机(Ubuntu 16.04 64位)(自备)
  • Java Development Kit(JDK)1.8

二、实验步骤与实验结果

1.创建Ubuntu16.04虚拟机

选择典型安装,选中提前准备好的Ubuntu16.04镜像文件

 

这里创建名为sorange的用户

 

硬盘内存分配40GB,处理器2个、2核,其余保持默认即可。

点击完成后进入Ubuntu安装界面。

2.修改Ubuntu语言为简体中文

*如果安装过程中已经选择了中文,则可以跳过该步骤。

安装完成中文语言包后,需要将“汉语(中国)”拖动到第一位,并点击Apply System-wide应用到全局。

之后点击Regional Fomats修改区域格式为汉语(中国),修改完成后重启虚拟机。

重启完成后会提示是否更新标准文件夹名称,这里选择更新名称。

 三、修改Ubuntu软件和更新镜像节点为中国镜像服务器

 打开Ubuntu的“设置-软件和更新”选择“中国的服务器”,如果弹出框要选择具体域名,则选择带有aliyun的镜像域名。

 四、在Ubuntu中创建hadoop用户

 打开Ubuntu终端,输入如下命令创建新用户:

1
sudo useradd -m hadoop -s /bin/bash

完成后输入如下命令设置密码:

1
sudo passwd hadoop

接着授予hadoop用户管理员权限,便于后续使用使用以下命令:

1
sudo adduser hadoop sudo

完成后点击右上角切换到hadoop用户

 五、更新apt-get

打开Ubuntu终端,输入如下命令,回车后输入密码:

1
sudo apt-get update

六、安装vim编辑器

打开Ubuntu终端,输入如下命令,回车后输入密码,过程中提示是否继续执行,输入y即可。

1
sudo apt-get install vim

七、安装SSH

首先安装SSH server,命令如下:

1
sudo apt-get install openssh-server

过程中会提示“您希望继续执行吗?”,输入y继续即可。

安装后,通过ssh登录本机,命令如下:

1
ssh localhost

这里提示是否继续连接,输入yes继续,并按提示输入密码即可成功登录。

 八、配置SSH无密码登录

*注意:如果上一步没有退出SSH连接,需要输入exit退出ssh连接。

退出SSH连接后依次输入如下命令:

1
2
3
4
5
6

1. cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
2. ssh-keygen -t rsa # 会有提示,都按回车就可以
3. cat ./id_rsa.pub >> ./authorized_keys # 加入授权


之后再输入ssh localhost即可无密码登录。

九、安装Java环境

将提前下载好的JDK1.8文件(jdk-8u162-linux-x64.tar.gz)(提取码:99bg)上传到Ubuntu的下载目录下,并执行以下命令将JDK文件解压到指定位置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1.  cd /usr/lib

3. #创建/usr/lib/jvm目录用来存放JDK文件
4. sudo mkdir jvm  

6. #进入hadoop用户的主目录
7. cd ~  

9. cd 下载
10. # 注意这里是jdk文件所在位置
11. # 由于我们前面将语言更改为了中文且修改了标准文件夹的名称,
12. # 所以这里不能使用Download,而是需要使用中文的“下载”

14. #把JDK文件解压到/usr/lib/jvm目录下
15. sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm

接着切换到/usr/lib/jvm目录下,查看文件是否存在

1
2
3
4
5
6

1. cd /usr/lib/jvm

3. ls


确认文件均存在之后,切换到用户主目录下进行环境变量设置,命令如下:

1
2
3
4
5
6

1. cd ~

3. vim ~/.bashrc


此时会进入vim编辑器,我们需要在文件开头加入以下内容(按下键盘上的字母i进入插入模式):

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

插入完成后按下键盘上的esc键,输入:wq保存退出

之后输入以下命令使得配置立即生效:

1
source ~/.bashrc

接着输入以下命令查看是否安装成功:

1
java -version

出现如上内容证明安装成功。

 十、安装Hadoop 2

接着我们安装Hadoop2(提取码:99bg),将下载下来的文件(hadoop-2.7.1.tar.gz)安装到/usr/local/目录下,具体步骤如下:

*注意:如果使用的不是2.7.1版本,请自行修改下面命令中的文件名

首先解压文件到/usr/local下:

1
sudo tar -zxf ~/下载/hadoop-2.7.1.tar.gz -C /usr/local

接着进入/usr/local目录:

1
cd /usr/local/

修改hadoop目录名:

1
sudo mv ./hadoop-2.7.1/hadoop

修改文件权限:

1
sudo chown -R hadoop ./hadoop

完成后检查Hadoop是否安装成功,出现版本即表示成功:

1
./bin/hadoop version

十一、进行伪分布式配置

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

这里我们直接使用图形化界面(gedit编辑器,即右键文件点击编辑打开的编辑器)对上述两个文件进行修改:

将core-site.xml文件内容整体修改为:

hadoop.tmp.dir

file:/usr/local/hadoop/tmp

Abase for other temporary directories.

fs.defaultFS

hdfs://localhost:9000

类似的,我们将hdfs-site.xml文件内容整体修改为:

dfs.replication

1

dfs.namenode.name.dir

file:/usr/local/hadoop/tmp/dfs/name

dfs.datanode.data.dir

file:/usr/local/hadoop/tmp/dfs/data

修改完成后均需要保存。

*提示:Hadoop 的运行方式是由配置文件决定的(运行 Hadoop 时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

随后,我们执行NameNodes的格式化操作,依次输入如下命令:

1
2
3
4
5
6

1. cd /usr/local/hadoop

3. ./bin/hdfs namenode -format


出现**”successfully formatted”** 和 “Exitting with status 0” 的提示,则代表成功。

接着开启 NameNode 和 DataNode 守护进程,依次输入如下指令,输入第二条指令时,会询问是否继续,输入yes即可:

1
2
3
4
5
6

1. cd /usr/local/hadoop

3. ./sbin/start-dfs.sh


成功启动后,可以打开Ubuntu自带的火狐浏览器访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

我们也可以用jps命令来查看是否运行完全,有以下四个证明运行完全:

十二、运行伪分布式实例

       首先在HDFS中创建用户目录,命令如下:

1
./bin/hdfs dfs -mkdir -p /user/hadoop

接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中。我们使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是/user/hadoop/input,命令如下:

1
2
3
4
5
6

1. ./bin/hdfs dfs -mkdir input

3. ./bin/hdfs dfs -put ./etc/hadoop/*.xml input


复制成功后,查看文件列表:

1
./bin/hdfs dfs -ls input

接着输入以下命令查看运行结果:

1
2
3
4
5
6

1. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

3. ./bin/hdfs dfs -cat output/*


我们也可以将结果取回本地,命令如下:

*注意:如果运行过该实例或output文件夹已经存在,要先使用rm -r ./output删除output文件夹

1
2
3
4
5
6

1. ./bin/hdfs dfs -get output ./output  # 将 HDFS 上的 output 文件夹拷贝到本机

3. cat ./output/*


至此,已经成功完成Hadoop伪分布式的搭建及其实例运行与结果查看,最后补充两条命令:

启动Hadoop:**./sbin/start-dfs.sh**

关闭Hadoop:**./sbin/stop-dfs.sh**