第一章 Hadoop 完全分布式安装

版权声明:如需转载,请注明出处! https://blog.csdn.net/qq_41172416/article/details/86489176

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文件夹,如下所示:

猜你喜欢

转载自blog.csdn.net/qq_41172416/article/details/86489176
今日推荐