本文是我学习Hadoop搭建过程中的各种笔记,内容来自于各种公开的教程,起点非常低,从Linux基础开始,直至在PC上搭建Hadoop成功,是真正的从零开始。
感谢过程中帮助我的各位认识的和不认识的老师。
30、Hadoop 单机版安装及应用:
三种安装模式:
Hadoop 单机版安装:
第一步:把包移动到home目录里
第二步:解压:tar –zxvf /home/ hadoop-2.7.1.tar.gz –C /usr/local
-C:指定解压到的位置/usr/local
安装单机版,单机版的包下载在D盘里:hadoop-2.7.1.tar
第三步:yum install lrzsz –y
第四步:rz
rz:此命令执行时,会弹出文件选择对话框,选择好需要上传的文件之后,点确定,就可以开始上传的过程了。上传的速度取决于当时网络的状况。如果执行完毕显示“0错误”,文件上传就成功了,其他显示则表示文件上传出现问题了。
查看,多了一个我们刚才解压过来的hadoop-2.7.1 cd /usr/local
进入hadoop-2.7.1查看其目录 cd ./hadoop-2.7.1/ ll
出来一下目录:
bin:里面是一些可执行的文件
查 看bin: ll ./bin/
ll ./bin/出来的结果:rwxr-xr-x
带有x的,是代表可以执行
缀带有 .cmd代表可以在Windows下运行
etc:里面是软件的配置目录 ll ./etc/hadoop/
sbin:可执行的命令,专用于启停Hadoop相关服务的命令 ll ./sbin
share:里面有两目录Hadoop的包,使用说明书,源码,测试性的包等 ll ./share/Hadoop
目前解压过来,还没有安装好,要配置环境变量:
配置环境变量: vi /etc/profile
Shift + G 跑到最后一行
O 按o换行
HADOOP_HOME= 基于HADOOP使用的环境变量都这么表示
HADOOP_HOME=/usr/local/hadoop-2.7.1/ 把安装目录赋值给这个变量
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
:wq
配置环境变量的作用:在服务器的任何地方都可以使用到我的命令
让配置的变量生效: source /etc/profile
此时which就可以看到hadoop的信息: which Hadoop
此时出现问题:
hadoop是由Java写的,源码是Java的一些类文件,类文件脱离了Java的 jdk 就是一堆费文件,所以要告诉hadoop,Java的安装文件在哪
解决:vi ./etc/hadoop/hadoop-env.sh
找到Java的,改: export JAVA_HOME=/user/local/jdk1.7.0_79/
检测是否配置好单机版hadoop:hadoop version ↓(这样就配置好了)
Hadoop单机版安装总结:
1. 解压安装包到指定目录
2. 为hadoop配置环境变量
3. 配置hadoop的安装目录下的/etc/hadoop/hadoop-env.sh
告诉hadoop我们的jdk的安装目录
4. 测试 which hadoop 或hadoop version
hadoop单机版安装实际操作:
1. yum install lrzsz –y 只需一次
2.切到home目录下(把软件按在哪个目录下,切到在哪个目录下,相当与解压安装包到指定目录):
[root@hadoop01 ~]# cd /home/
安装哪个压缩包(hadoop-2.7.1.tar.gz):rz
[root@hadoop01 home]# rz
3.解压:
[root@hadoop01 home]# tar –zxvf /home/ hadoop-2.7.1.tar.gz –C /usr/local
[root@hadoop01 ~]# cd /usr/local/
[root@hadoop01 local]# ll
total 48
drwxr-xr-x. 2 root root 4096 Sep 23 2011 bin
drwxr-xr-x. 9 10021 10021 4096 Jun 29 2015 hadoop-2.7.1 多了一个这个
drwxr-xr-x. 8 uucp 143 4096 Apr 18 10:07 jdk1.8.0_144
…………
查看hadoop-2.7.1目录:
[root@hadoop01 local]# cd ./hadoop-2.7.1/
[root@hadoop01 hadoop-2.7.1]# ll
total 52
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 bin
drwxr-xr-x. 3 10021 10021 4096 Jun 29 2015 etc
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 include
drwxr-xr-x. 3 10021 10021 4096 Jun 29 2015 lib
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 libexec
-rw-r--r--. 1 10021 10021 15429 Jun 29 2015 LICENSE.txt
-rw-r--r--. 1 10021 10021 101 Jun 29 2015 NOTICE.txt
-rw-r--r--. 1 10021 10021 1366 Jun 29 2015 README.txt
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 sbin
drwxr-xr-x. 4 10021 10021 4096 Jun 29 2015 share
hadoop-2.7.1中,一些目录的作用:
操作hadoop的可执行命令:bin
[root@hadoop01 hadoop-2.7.1]# ll ./bin/
total 448
-rwxr-xr-x. 1 10021 10021 160127 Jun 29 2015 container-executor
-rwxr-xr-x. 1 10021 10021 6488 Jun 29 2015 hadoop
-rwxr-xr-x. 1 10021 10021 8786 Jun 29 2015 hadoop.cmd
-rwxr-xr-x. 1 10021 10021 12223 Jun 29 2015 hdfs
-rwxr-xr-x. 1 10021 10021 7327 Jun 29 2015 hdfs.cmd
-rwxr-xr-x. 1 10021 10021 5953 Jun 29 2015 mapred
-rwxr-xr-x. 1 10021 10021 6310 Jun 29 2015 mapred.cmd
-rwxr-xr-x. 1 10021 10021 1776 Jun 29 2015 rcc
-rwxr-xr-x. 1 10021 10021 204075 Jun 29 2015 test-container-executor
-rwxr-xr-x. 1 10021 10021 13308 Jun 29 2015 yarn
-rwxr-xr-x. 1 10021 10021 11386 Jun 29 2015 yarn.cmd(.cmd可以在Windows下运行)
软件的配置目录:etc
[root@hadoop01 hadoop-2.7.1]# ll ./etc/
total 4
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 hadoop
常用的配置文件:ll ./etc/hadoop
[root@hadoop01 hadoop-2.7.1]# ll ./etc/hadoop/
total 152
-rw-r--r--. 1 10021 10021 4436 Jun 29 2015 capacity-scheduler.xml
-rw-r--r--. 1 10021 10021 1335 Jun 29 2015 configuration.xsl
………………
-rw-r--r--. 1 10021 10021 4567 Jun 29 2015 yarn-env.sh
-rw-r--r--. 1 10021 10021 690 Jun 29 2015 yarn-site.xml
hadoopd库和配置文件:
[root@hadoop01 hadoop-2.7.1]# ll
total 52
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 bin
drwxr-xr-x. 3 10021 10021 4096 Jun 29 2015 etc
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 include
drwxr-xr-x. 3 10021 10021 4096 Jun 29 2015 lib
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 libexec
-rw-r--r--. 1 10021 10021 15429 Jun 29 2015 LICENSE.txt
-rw-r--r--. 1 10021 10021 101 Jun 29 2015 NOTICE.txt
-rw-r--r--. 1 10021 10021 1366 Jun 29 2015 README.txt
drwxr-xr-x. 2 10021 10021 4096 Jun 29 2015 sbin
drwxr-xr-x. 4 10021 10021 4096 Jun 29 2015 share
启停hadoop相关服务的命令:sbin
[root@hadoop01 hadoop-2.7.1]# ll ./sbin/
total 120
-rwxr-xr-x. 1 10021 10021 2752 Jun 29 2015 distribute-exclude.sh
-rwxr-xr-x. 1 10021 10021 6452 Jun 29 2015 hadoop-daemon.sh
-rwxr-xr-x. 1 10021 10021 1360 Jun 29 2015 hadoop-daemons.sh
-rwxr-xr-x. 1 10021 10021 1640 Jun 29 2015 hdfs-config.cmd
-rwxr-xr-x. 1 10021 10021 1427 Jun 29 2015 hdfs-config.sh
-rwxr-xr-x. 1 10021 10021 2291 Jun 29 2015 httpfs.sh
-rwxr-xr-x. 1 10021 10021 3128 Jun 29 2015 kms.sh
-rwxr-xr-x. 1 10021 10021 4080 Jun 29 2015 mr-jobhistory-daemon.sh
-rwxr-xr-x. 1 10021 10021 1648 Jun 29 2015 refresh-namenodes.sh
-rwxr-xr-x. 1 10021 10021 2145 Jun 29 2015 slaves.sh
-rwxr-xr-x. 1 10021 10021 1779 Jun 29 2015 start-all.cmd
-rwxr-xr-x. 1 10021 10021 1471 Jun 29 2015 start-all.sh
-rwxr-xr-x. 1 10021 10021 1128 Jun 29 2015 start-balancer.sh
-rwxr-xr-x. 1 10021 10021 1401 Jun 29 2015 start-dfs.cmd
-rwxr-xr-x. 1 10021 10021 3734 Jun 29 2015 start-dfs.sh
-rwxr-xr-x. 1 10021 10021 1357 Jun 29 2015 start-secure-dns.sh
-rwxr-xr-x. 1 10021 10021 1571 Jun 29 2015 start-yarn.cmd
-rwxr-xr-x. 1 10021 10021 1347 Jun 29 2015 start-yarn.sh
-rwxr-xr-x. 1 10021 10021 1770 Jun 29 2015 stop-all.cmd
-rwxr-xr-x. 1 10021 10021 1462 Jun 29 2015 stop-all.sh (常用)
-rwxr-xr-x. 1 10021 10021 1179 Jun 29 2015 stop-balancer.sh
-rwxr-xr-x. 1 10021 10021 1455 Jun 29 2015 stop-dfs.cmd
-rwxr-xr-x. 1 10021 10021 3206 Jun 29 2015 stop-dfs.sh
-rwxr-xr-x. 1 10021 10021 1340 Jun 29 2015 stop-secure-dns.sh
-rwxr-xr-x. 1 10021 10021 1642 Jun 29 2015 stop-yarn.cmd
-rwxr-xr-x. 1 10021 10021 1340 Jun 29 2015 stop-yarn.sh
-rwxr-xr-x. 1 10021 10021 4295 Jun 29 2015 yarn-daemon.sh
-rwxr-xr-x. 1 10021 10021 1353 Jun 29 2015 yarn-daemons.sh
hadoop的学习文档和一些测试jar包:share
[root@hadoop01 hadoop-2.7.1]# ll ./share/
total 8
drwxr-xr-x. 3 10021 10021 4096 Jun 29 2015 doc
(doc:hadoop的学习文档,相当于使用说明书)
drwxr-xr-x. 9 10021 10021 4096 Jun 29 2015 hadoop
(hadoop:hadoop的一些测试jar包,一些源码)
4.配置环境变量:
[root@hadoop01 hadoop-2.7.1]# vi /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_144/ (之前配置好,已存在)
HADOOP_HOME=/usr/local/hadoop-2.7.1
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
5.使修改的命令生效:
[root@hadoop01 hadoop-2.7.1]# source /etc/profile
-bash: my: command not found (但是后面可以)
再次which:
[root@hadoop01 hadoop-2.7.1]# which hadoop
/usr/local/hadoop-2.7.1/bin/hadoop
看到确实是刚才解压安装到的目录↑
查看hadoop版本:
[root@hadoop01 hadoop-2.7.1]# hadoop verison
Error: JAVA_HOME is not set and could not be found.
报错,原因是,此时没有配置Java的环境变量↑
配置Java的环境变量,即告诉hadoop我们安装的jdk的安装路径:
[root@hadoop01 hadoop-2.7.1]# vi ./etc/hadoop/hadoop-env.sh
修改此处,修改成Java真正的安装目录:
export JAVA_HOME=${JAVA_HOME}
修改为:
export JAVA_HOME=/usr/local/ jdk1.8.0_144/
再次 hadoop version
[root@hadoop01 hadoop-2.7.1]# hadoop version
出来的结果为(成功!):
Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657a
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop-2.7.1/share/hadoop/common/hadoop-common-2.7.1.jar
单机版Hadoop搭建成功↑
使用单机版Hadoop跑一个作业,统计字数,统计操作:
$ mkdir input
先创建一个目录
$ cp etc/hadoop/*.xml input
把目录下面所以的*.xml的文件,复制到input数据目录下面
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar grep input output 'dfs[a-z.]+'
计算每一个目录里面每一个单词出现的次数
$ cat output/*
在home下创建一个input目录:
[root@hadoop01 hadoop-2.7.1]# mkdir /home/input
把etc下面的hadoop目录里面所有的*.xml的文件,复制到新创建的input数据目录下面:
[root@hadoop01 hadoop-2.7.1]# cp ./etc/hadoop/*.xml /home/input/
复制完成,查看新创建的input数据目录:
[root@hadoop01 hadoop-2.7.1]# ll /home/input/
total 48
-rw-r--r--. 1 root root 4436 Apr 18 10:43 capacity-scheduler.xml
-rw-r--r--. 1 root root 774 Apr 18 10:43 core-site.xml
-rw-r--r--. 1 root root 9683 Apr 18 10:43 hadoop-policy.xml
-rw-r--r--. 1 root root 775 Apr 18 10:43 hdfs-site.xml
-rw-r--r--. 1 root root 620 Apr 18 10:43 httpfs-site.xml
-rw-r--r--. 1 root root 3518 Apr 18 10:43 kms-acls.xml
-rw-r--r--. 1 root root 5511 Apr 18 10:43 kms-site.xml
-rw-r--r--. 1 root root 690 Apr 18 10:43 yarn-site.xml
出来的是8个文件,要求统计:这8个文件中的每个文件,每个单词出现的频率
由于配了环境变量,采用框来架执行:
[root@hadoop01 hadoop-2.7.1]# hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /home/input/ /home/output
代表使用jar包的方式来执行本次作业
完成本次作业后,查看output目录:
[root@hadoop01 hadoop-2.7.1]# ll /home/output/
total 12
-rw-r--r--. 1 root root 9984 Apr 24 20:17 part-r-00000
-rw-r--r--. 1 root root 0 Apr 24 20:17 _SUCCESS
出来的是:结果文件和本次作业成功
查看结果文件:
[root@hadoop01 hadoop-2.7.1]# more /home/output/part-r-00000
"*" 18
"AS 8
"License"); 8
"alice,bob 18
"kerberos". 1
"simple" 1
'HTTP/' 1
'none' 1
'random' 1
'sasl' 1
'string' 1
'zookeeper' 2
'zookeeper'. 1
(ASF) 1
(Kerberos). 1
(default), 1
………………
出来的是每个文件,每个单词出现的次数(按Enter向下看)
单机版Hadoop跑一个作业,统计字数成功↑
查看hdfs文件系统,查看hdfs下面的目录有哪些东西(hdfs是个文件系统,由于我们使用的是3……版,它会把Linux文件系统,作为hdfs文件系统)
[root@hadoop01 hadoop-2.7.1]# hdfs dfs -ls /
18/04/24 20:24:06 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 24 items
-rw-r--r-- 1 root root 0 2018-04-24 08:20 /.autofsck
drwx------ - root root 4096 2018-04-21 22:33 /.dbus
dr-xr-xr-x - root root 4096 2018-04-22 03:28 /bin
dr-xr-xr-x - root root 1024 2018-04-21 22:31 /boot
drwxr-xr-x - root root 3780 2018-04-24 08:21 /dev
drwxr-xr-x - root root 12288 2018-04-24 20:02 /etc
drwxr-xr-x - root root 4096 2018-04-24 20:17 /home
dr-xr-xr-x - root root 4096 2018-04-22 02:22 /lib
dr-xr-xr-x - root root 12288 2018-04-22 03:28 /lib64
drwx------ - root root 16384 2018-04-21 22:20 /lost+found
drwxr-xr-x - root root 4096 2018-04-24 08:26 /media
drwxr-xr-x - root root 0 2018-04-24 08:21 /misc
drwxr-xr-x - root root 4096 2018-04-23 08:54 /mnt
drwxr-xr-x - root root 0 2018-04-24 08:21 /net
drwxr-xr-x - root root 4096 2018-04-21 22:29 /opt
dr-xr-xr-x - root root 0 2018-04-24 08:20 /proc
dr-xr-x--- - root root 4096 2018-04-24 18:43 /root
dr-xr-xr-x - root root 12288 2018-04-23 08:54 /sbin
drwxr-xr-x - root root 0 2018-04-24 08:20 /selinux
drwxr-xr-x - root root 4096 2011-09-23 19:50 /srv
drwxr-xr-x - root root 0 2018-04-24 08:20 /sys
drwxrwxrwt - root root 4096 2018-04-24 20:17 /tmp
drwxr-xr-x - root root 4096 2018-04-21 22:22 /usr
drwxr-xr-x - root root 4096 2018-04-21 22:29 /var