本篇博文安装的是Hadoop的单机模式。
一、实验环境(rhel7.3版本)
1、selinux和firewalld状态为disabled
2、各主机信息如下:
主机 | ip |
---|---|
server1 | 172.25.83.1 |
二、Hadoop单机模式的安装与部署
1、添加hadoop用户(为后面配置hadoop集群做准备:hadoop集群要求所有节点的hadoop用户的uid,gid是一致的)
[root@server1 ~]# useradd -u 1004 hadoop #因为1000-1003被别的用户占用,所以这里给定hadoop用户的uid为1004
[root@server1 ~]# id hadoop
uid=1004(hadoop) gid=1004(hadoop) groups=1004(hadoop)
2、下载hadoop、jdk安装包到hadoop用户家目录(放到hadoop用户家目录下的原因是:hadoop用户对其家目录具有所有的权限,这样就不需要在/etc/sudoers下给hadoop用户权限了)
[root@server1 ~]# ls
hadoop-3.0.3.tar.gz jdk-8u181-linux-x64.tar.gz
[root@server1 ~]# mv * /home/hadoop/
[root@server1 ~]# cd /home/hadoop/
[root@server1 hadoop]# ls
hadoop-3.0.3.tar.gz jdk-8u181-linux-x64.tar.gz
3、解压配置软链接(方便hadoop、jdk更新,只更改软链接即可)
[root@server1 hadoop]# su - hadoop
[hadoop@server1 ~]$ ls
hadoop-3.0.3.tar.gz jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ tar zxf hadoop-3.0.3.tar.gz
[hadoop@server1 ~]$ tar zxf jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ ls
hadoop-3.0.3 hadoop-3.0.3.tar.gz jdk1.8.0_181 jdk-8u181-linux-x64.tar.gz
[hadoop@server1 ~]$ ln -s hadoop-3.0.3 hadoop
[hadoop@server1 ~]$ ln -s jdk1.8.0_181/ java
[hadoop@server1 ~]$ ll
total 488256
lrwxrwxrwx 1 hadoop hadoop 12 Apr 4 11:50 hadoop -> hadoop-3.0.3
drwxr-xr-x 9 hadoop hadoop 149 Jun 1 2018 hadoop-3.0.3
-rw-r--r-- 1 root root 314322972 Apr 4 11:47 hadoop-3.0.3.tar.gz
lrwxrwxrwx 1 hadoop hadoop 13 Apr 4 11:50 java -> jdk1.8.0_181/
drwxr-xr-x 7 hadoop hadoop 245 Jul 7 2018 jdk1.8.0_181
-rw-r--r-- 1 root root 185646832 Apr 4 11:47 jdk-8u181-linux-x64.tar.gz
- 查看java是否安装成功
4、配置java环境变量
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop/etc/hadoop
[hadoop@server1 hadoop]$ vim hadoop-env.sh #在文件的任意位置编写下面的这行内容
54 export JAVA_HOME=/home/hadoop/java
- 查看hadoop是否安装成功(只有当配置java环境变量之后,hadoop才算安装成功)
5、测试:通过执行hadoop自带实例验证是否安装成功
<1>测试1:将input目录中含有dfs的字符串输出到output目录,其中output目录不必创建
[hadoop@server1 hadoop]$ pwd
/home/hadoop/hadoop
[hadoop@server1 hadoop]$ mkdir input #创建input目录
[hadoop@server1 hadoop]$ cp etc/hadoop/*.xml input/ #拷贝xml文件到input目录下。值的注意的是这里必须是xml文件,否则测试时会报错
[hadoop@server1 hadoop]$ cd input/
[hadoop@server1 input]$ ls
capacity-scheduler.xml hdfs-site.xml kms-site.xml
core-site.xml httpfs-site.xml mapred-site.xml
hadoop-policy.xml kms-acls.xml yarn-site.xml
[hadoop@server1 input]$ cd ..
[hadoop@server1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar grep input output 'dfs[a-z.]+'
-
示图:output目录中存在含有dfs的字符串,表示安装成功
- 其中dfsadmin来源于input目录下的hadoop-policy.xml文件(vim hadoop-policy.xml)
<2>测试2:将input目录下所有文件信息中的单词统计数据输出到output目录下,其中output目录不必创建
[hadoop@server1 hadoop]$ rm -rf output/ #删除之前生成的output目录,否则执行下面的命令会报错(output目录已经存在)
[hadoop@server1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.3.jar wordcount input output
- 示图:output目录中存在单词统计数据,表示安装成功