一. HDFS安装及配置
- 更改主机名称
[root@localhost ~]# hostname node1 (可选)
[root@localhost ~]# vim /etc/hostname (必选)
[root@localhost ~]# vim /etc/sysconfig/network (可选)
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node1
- 配置静态ip和主机的映射
[root@localhost ~]# vim /etc/hosts
添加如下IP与主机名映射关系
192.168.100.11 node1
[root@localhost ~]# cat /etc/hosts
127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4
::1localhostlocalhost.localdomain localhost6 localhost6.localdomain6
192.168.100.11 node1
- 在/opt目录下建立三个文件夹
- modules(负责放解压后的文件)
- software(负责放软件安装包)
- tools(负责存放工具)
cd /opt
mkdir modules
mkdir software
mkdir tools
- 使用Xftp将jdk上传到software中并且解压到modules(其中事先要安装Xshell与Xftp)
#tar -xzvf解压文件所在目录 -C 解压到的目录
tar -xzvf /opt/software/jdk-8u191-linux-x64.tar.gz -C /opt/modules/
cd /opt/modules
mv jdk1.8.0_191 jdk #重命名为 jdk,有利于升级后的替换(环境变量没有版本号,这样不用更改配置的环境变量,只需替换程序即可)
- 配置java环境变量
vim /etc/profile # 在此文件后追加以下两句
export JAVA_HOME=/opt/modules/jdk
export PATH=$PATH:$JAVA_HOME/bin
- 保存配置文件使其生效
source /etc/profile
- 检测
我们会发现此时安装的jdk是Linux自带的(OpenJDK),我们必须将它删除
a: 我们先找到之前安装的版本按照java找
rpm -qa|grep java (若没有则跳到c步骤)
b: 删除
rpm -e --nodeps (jdk版本)
c: source /etc/profile
[root@localhostjdk]# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
- 配置ssh
A: 在主机创建秘钥:ssh-keygen-t rsa(依次回车直到生成密钥)
[root@node1 ~]# ssh-keygen -t rsa
B: 分发秘钥:
ssh-copy-id root@node1
- 开始安装hadoop
A: 将本地hadoop-2.9.2.tar.gz上传到/opt/software
B: 解压hadoop到/opt/modules
tar -xzvf /opt/software/hadoop-2.9.2.tar.gz -C /opt/modules
cd /opt/modules
C:将解压后的文件名改为hadoop(去掉版本号,便于升级)
mv /opt/modules/hadoop-2.9.2 hadoop
- 配置hadoop环境变量
vim /etc/profile
export HADOOP_HOME=/opt/modules/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 刷新配置文件
source /etc/profile
- 配置core-site.xml(
默认在/modules/hadoop/etc/hadoop下
,将以下内容添加到configration中间)
[root@node1 opt]# cd /opt
[root@node1 opt]# cd modules
[root@node1 modules]# cd hadoop
[root@node1 hadoop]# cd etc
[root@node1 etc]# cd hadoop
[root@node1 etc]# vim core-site.xml
(将以下内容添加到configration中间)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000/</value>
</property>
</configuration>
- 配置hdfs-site.xml
配置hdfs-site.xml
cd /opt/modules/hadoop/etc/hadoop
vim hdfs-site.xml
(将以下内容添加到configration中间)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
14.配置yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- 配置mapred-site.xml.template
mv mapred-site.xml.template mapred-site.xml
然后将以下内容添加到configration中间
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 配置slaves文件
vim slaves
# 一台主机一行
node1
- 配置hadoop-env.sh (设置java的环境变量)
export JAVA_HOME=/opt/modules/jdk
- 格式化namenode
source /etc/profile
hdfs namenode -format
- 启动hdfs节点
start-dfs.sh
- 启动yarn节点
start-yarn.sh
查看各服务是否启动,搭建成功
- hadoop成功安装测试
- 在各节点上输入下面的指令若出现hadoop版本信息则安装hadoop成功
hadoop version
-
通过浏览器可以访问 http://192.168.100.3:50070
-
浏览器输入 http://172.16.11.17:8088/
-
创建文件目录并查看目录下文件
-
上传文件
-
下载文件并查看文件
-
通过UI查看块存储的位置
二. 简单应用
- 统计一下某个文件当中的每个单词出现的次数。
把hadoop目录下的README.txt文件上传到HDFS系统根目录下,上传的命令是:
hdfs dfs -put /opt/modules/hadoop/README.txt /words
接下来我们该执行wordcount命令:
cd /opt/modules/hadoop/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcount /words /wcout
执行成功之后我们再来看一下HDFS系统根目录下的文件列表,发现多了一个wcout文件,如下图所示。我们再进入这个wcout文件夹当中看里面都有哪些东西:
我们发现它的里面有两个文件,其中/wcout/part-r-00000这个文件中保存了我们计算的结果。我们再具体看看这个part-r-00000文件当中的具体内容是什么:
发现这个文件里面记录着每个单词出现的次数。