1、安装Hadoop
hadoop-2.6.0.tar.gz网盘:https://pan.baidu.com/s/1bguO22yj38HZQS2aQt-03Q
(1) 下载 hadoop-2.6.0.tar.gz压缩包,将压缩包解压到 /home/hduser 目录下,输入命令:
#进入 HOME 目录即 :"/home/hduser"
cd ~
tar -zxvf hadoop -2.6.0.tar.gz
(2)重命名为 hadoop,输入命令:
mv hadoop-2.6.0 hadoop
(3)配置hadoop 环境变量,输入命令:
sudo gedit /etc/profile
将以下3行脚本增加到profile内:
#hadoop
export HADOOP_HOME=/home/hduser/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
保存关闭,最后输入命令使配置生效:
source /etc/profile
注意:node2、node3都要按以上步骤配置。(配置,配置,配置,重要的事情说三遍)
2、配置 Hadoop
(1) hadoop-env.sh文件用于指定 JDK 路径。
[hduser@node1 ~]$ cd ~/hadoop/etc/hadoop
[hduser@node1 hadoop]$ gedit hadoop-env.sh
然后增加如下内容指定 JDK 路径:
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64
(2) yarn-env.sh :第二代Hadoop 新增加的 YARN 框架
[hduser@node1 hadoop]$ gedit yarn-env.sh
然后在文件末尾增加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_191-amd64
(3) slaves :用于增加 slaves 节点即 DataNode节点
[hduser@node1 hadoop]$ gedit slaves
打开并清空原内容,然后输入如下内容:
node2
node3
表示 node2、node3 作为 slave 节点
(4) core-site.xml: 该文件是 Hadoop 全局配置。
[hduser@node1 hadoop]$ gedit core-site.xml
打开并在<configuration>元素中配置属性如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop:tmp.dir</name>
<value>file:/home/hduser/hadoop/tmp</value>
</property>
</configuration>
这里给出了两个常用的配置属性。fs.defaultFS 表示客户端连接 HDFS 时,默认的路径前缀,9000是 HDFS 工作的端口。hadoop.tmp.dir 如不指定会保存到系统的默认临时文件目录/tmp 中。
(5) hdfs-site.xml: 该文件是 HDFS 的配置。
[hduser@node1 hadoop]$ gedit hdfs-site.xml
打开并在<configuration>元素中配置属性如下:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hduser/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hduser/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
(6) mapred-site.xml: 该文件是 HDFS 的配置。
[hduser@node1 hadoop]$ gedit mapred-site.xml
打开并在<configuration>元素中配置属性如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
</configuration>
(7) yarn-site.xml: 该文件是 HDFS 的配置。
[hduser@node1 hadoop]$ gedit yarn-site.xml
打开并在<configuration>元素中配置属性如下:
<configuration>
<!-- Site specific YARN configuration properties -->
<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>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
</property>
</configuration>
最后将这七个文件复制到 node2 、node3 的同目录下。最简单的方式是使用基于 SSH 的scp命令,在node1 上输入如下命令:
scp -r /home/hduser/hadoop/etc/hadoop/ hduser@node2:/home/hduser/hadoop/etc/
scp -r /home/hduser/hadoop/etc/hadoop/ hduser@node3:/home/hduser/hadoop/etc/
3、验证
下面验证 Hadoop配置是否正确。
(1) 在 Master 主机 (node1) 上格式化 NameNode,输入命令:
[hduser@node1 ~]$ cd ~/hadoop
[hduser@node1 hadoop]$ bin/hdfs namenode -format
(2) 关闭 node1,node2,node3 系统防火墙并重启虚拟机,输入命令:
service iptables stop
sudo chkconfig iptables off
reboot
(3) 输入以下命令启动 HDFS
[hduser@node1 ~]$ cd ~/hadoop
[hduser@node1 hadoop]$ sbin/start-dfs.sh
(4) 输入jps命令查看 java 进程 如下所示:
[hduser@node1 ~]$ jps
3184 ResourceManager
2996 SecondaryNameNode
2842 NameNode
5295 Jps
[hduser@node1 ~]$
(5) 启动 YARN,输入命令:
[hduser@node1 hadoop]$ sbin/start-yarn.sh
也可以使用 start-all.sh同时启动 HDFS 和 YARN
[hduser@node1 hadoop]$ sbin/start-all.sh
(6) 查看集群状态,输入命令:
[hduser@node1 hadoop]$ bin/hdfs dfsadmin -report
运行该命令后,输出如下信息则表示 Hadoop 已成功运行。
[hduser@node1 hadoop]$ bin/hdfs dfsadmin -report
19/01/14 19:48:19 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Configured Capacity: 37426438144 (34.86 GB)
Present Capacity: 27079352320 (25.22 GB)
DFS Remaining: 27077304320 (25.22 GB)
DFS Used: 2048000 (1.95 MB)
DFS Used%: 0.01%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
-------------------------------------------------
Live datanodes (2):
Name: 192.168.72.129:50010 (node2)
Hostname: node2
Decommission Status : Normal
Configured Capacity: 18713219072 (17.43 GB)
DFS Used: 557056 (544 KB)
Non DFS Used: 5169111040 (4.81 GB)
DFS Remaining: 13543550976 (12.61 GB)
DFS Used%: 0.00%
DFS Remaining%: 72.37%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Jan 14 19:48:19 PST 2019
Name: 192.168.72.130:50010 (node3)
Hostname: node3
Decommission Status : Normal
Configured Capacity: 18713219072 (17.43 GB)
DFS Used: 1490944 (1.42 MB)
Non DFS Used: 5177974784 (4.82 GB)
DFS Remaining: 13533753344 (12.60 GB)
DFS Used%: 0.01%
DFS Remaining%: 72.32%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Jan 14 19:48:19 PST 2019
[hduser@node1 hadoop]$
注意:如果各项数值为0,也表示安装失败。
(7) 在浏览器中查看 HDFS 运行状态,网址:http://node1:50070
(8) 停止 Hadoop,输入命令:
[hduser@node1 hadoop]$ sbin/stop-all.sh
4、运行 Hadoop 的 WordCount程序
(1)在操作系统 /home/hduser/file 目录下创建 file1.txt、file2.txt,
file1.txt输入内容:
Hello World hi HADOOP
file2.txt输入内容:
Hello hadoop hi CHINA
(2)启动 HDFS 后创建 HDFS 目录 /input2:
[hduser@node1 hadoop]$ bin/hadoop fs -mkdir /input2
(3)将file1.txt 、file2.txt 保存到 HDFS中
[hduser@node1 hadoop]$ bin/hadoop fs -put ~/file/file*.txt /input2/
(4)查看 HDFS 上是否已经存在 file1.txt 、file2.txt
[hduser@node1 hadoop]$ bin/hadoop fs -ls /input2
如下图所示,表示文件保存成功。
进入 node1 主机上的 Hadoop安装目录,输入如下命令:
[hduser@node1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input2/ /output2/wordcount1
查看结果:
[hduser@node1 hadoop]$ bin/hadoop fs -cat /output2/wordcount1/*
如下图所示,表示已经成功安装了 Hadoop
5、安装 Hadoop 开发环境
链接:https://pan.baidu.com/s/1ZK_fdazpXYIh1BsPvY__DA
提取码:qfe8
1、解压
下载压缩包后,解压即完成安装。解压到 /home/hduser 下:
cd ~
tar -zxvf /mnt/hgfs/hadoop/eclipse-java-kepler-SR2-linux-gtk-x86_64.tar.gz
2、创建桌面快捷方式
桌面右键-------->Create Launcher(创建启动器)
3、安装 Hadoop 插件
链接:https://pan.baidu.com/s/1DQooO2HZk3zet1VLuh65mQ
提取码:jc4f
(1)将下载的插件移动到 Eclipse 插件目录 (/home/hduser/eclipse/plugins)下,重启 Eclipse
(2)配置 Hadoop 安装目录
选择 Window →preferences →Hadoop Map/Reduce →Hadoop installation directory 命令,选择 Hadoop 安装路径,如下图:
(3)配置 Map/Reduce 视图
单击 Window →Open Perspective →Other →Map/Reduce → OK,如下图所示:
(4)在 "Map/Reduce Locations" 空白处右击,选择 "New Hadoop location..."命令
(5)选择 Window →Show View →Project Explorer
打开 Project Explorer,查看 HDFS 文件系统,如下图:
(6) 新建 Map/Reduce任务。
单击 "File" → "New" → "project" → "Map/Reduce Project" → "Next" 按钮,输入项目名 “wordcount”,单击"Finish" 按钮
找到Hadoop提供的 WordCount 示例源码 “WordCount.java”,其位于 "/hduser/hadoop/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.6.0-sources.jar"中将 “WordCount.java”解压后添加到当前工程源码目录,修改一下包名即可。
(7) 运行 WordCount.
右击 WordCount.java,在弹出的快捷菜单中选择 “Run As” → "Run Configuration" ,在 “Java Application”上右击,→“New”
如图所示:
配置参数如下:
hdfs://node1:9000/input2
hdfs://node1:9000/output2/wordcount1
运行结束后,刷新输出目录 /output2/wordcount1,如提示目录已经存在,应先删除目录 wordcount1再运行。
(8)使用jar包方式运行
打包:
运行jar包:
[hduser@node1 hadoop]$ bin/hadoop jar /home/hduser/file/wordcount.jar /input2/ /output2/wordcount2
此时打开eclipse查看hdfs文件系统,明显多了一个wordcount2文件夹,如下所示: