Hadoop离线计算(一)之安装并配置Hadoop

一、准备linux环境

1.0 配置好各虚拟机的网络(采用NAT联网模式)

第一种:通过Linux图形界面进行修改(桌面版本Centos)进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections-> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.25.161 子网掩码:255.255.255.0 网关:192.168.25.2-> apply

第二种:修改配置文件方式

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
UUID=37e6d2fd-3efb-4a33-aebf-fc8e7be64e45
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
HWADDR=00:50:56:25:E7:80
IPADDR=192.168.25.161
PREFIX=24
GATEWAY=192.168.25.2
DNS1=192.168.25.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"

1.1修改各个虚拟机主机名

vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=node1    

1.2修改主机名和IP的映射关系

vi /etc/hosts

192.168.25.161	node1
192.168.25.162	node2
192.168.25.163	node3

1.3关闭防火墙

#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off

1.4.配置ssh免登陆

生成ssh免登陆**

ssh-****** -t rsa #(四个回车)

执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上(集群有多少台就需配置多少台,包括本身机器,可用脚本处理)

ssh-copy-id node2

1.5 同步集群时间

常用的手动进行时间的同步
date -s “2018-03-03 03:03:03”
或者网络同步:

yum install ntpdate
ntpdate cn.pool.ntp.org

二、安装JDK

2.1上传jdk

rz jdk-8u65-linux-x64.tar.gz

2.2解压jdk

	tar -zxvf jdk-8u65-linux-x64.tar.gz -C /root/apps

2.3将java添加到环境变量中

vim /etc/profile
#在文件最后添加
export JAVA_HOME=/export/server/jdk1.8.0_144
export PATH=PATH:JAVA_HOME/bin
export CLASSPATH=.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar
#刷新配置
source /etc/profile

三、安装hadoop2.7.4

上传hadoop的安装包到服务器(此处的路径为自行创建的文件夹/export/server)
hadoop-2.7.4-with-centos-6.7.tar.gz
解压安装包

tar zxvf hadoop-2.7.4-with-centos-6.7.tar.gz

注意:hadoop2.x的配置文件目录:$HADOOP_HOME/etc/hadoop

四、配置Hadoop(重点)

4.1配置hadoop

在hadoop集群中的主节点机器上,跳转到hadoop安装的目录,进入/export/server/hadoop-2.7.4/etc/hadoop目录,修改6个配置文件。

第一个:hadoop-env.sh

此配置主要是为了保证hadoop运行的环境,其实已经配置了javahome,也是可以不配的,但建议配置

vi hadoop-env.sh
export JAVA_HOME=/export/server/jdk1.8.0_144

第二个:core-site.xml(注:在标签中添加)

<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://node1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录,默认/tmp/hadoop-${user.name} -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/export/data/hddata</value>
</property>

第三个:hdfs-site.xml

<!-- 指定HDFS副本的数量 不配置的话,默认为3个-->
<property>
	<name>dfs.replication</name>
	<value>2</value>
</property>
<!--秘书地址-->
<property>
 	<name>dfs.namenode.secondary.http-address</name>
  	<value>node2:50090</value>
</property>

第四个:mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 指定mr运行时框架,这里指定在yarn上,默认是local -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>

第五个:yarn-site.xml

<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>node1</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

第六个:slaves文件,里面写上从节点所在的主机名字

vi slaves
node1
node2
node3

4.2将hadoop添加到环境变量

vim /etc/profile
#在/etc/profile文件中添加以下代码
#hadoop
export HADOOP_HOME=/export/server/hadoop-2.7.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#重新加载资源
source /etc/profile

附加:上两节的配置需要同步到其他集群机器中,可以使用scp命令处理,如拷贝hadoop到node2

#拷贝hadoop到node2
scp -r /export/server/hadoop-2.7.4 [email protected]:/export/server
#拷贝环境变量文件到node2(其他节点机器配置相同)
scp -r /etc/profile [email protected]:/etc

4.3格式化namenode(本质是对namenode进行初始化)

hdfs namenode -format #(或者hadoop namenode -format)

4.4启动hadoop

#在hadoop的安装目录下/export/server/hadoop-2.7.4,先启动HDFS
sbin/start-dfs.sh
#再启动YARN
sbin/start-yarn.sh

4.5验证是否启动成功

使用jps命令验证

[[email protected] hadoop-2.7.4]# jps
3729 DataNode
3985 ResourceManager
4085 NodeManager
4699 Jps
3613 NameNode

在浏览器输入以下网址验证

http://192.168.25.161:50070 (HDFS管理界面)

Hadoop离线计算(一)之安装并配置Hadoop

http://192.168.25.161:8088 (MR管理界面)

Hadoop离线计算(一)之安装并配置Hadoop

五、Hadoop初体验

5.1 hdfs使用

#简单命令
#查询根目录
hdfs dfs -ls /
#创建新文件夹/hello
hdfs dfs -mkdir /hello
#将文件/root/test.txt放入文件夹/hello中
hdfs dfs -put /root/test.txt /hello

Hadoop离线计算(一)之安装并配置Hadoop

5.2 mapreduce测试

官方提供了一个jar包可以进行测试,这个包放在/export/server/hadoop-2.7.4/share/hadoop/mapreduce文件夹中,进入该目录中,执行命令即可测试

#计算圆周率
# Number of Maps  = 20
# Samples per Map = 50
hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 20 50

Hadoop离线计算(一)之安装并配置Hadoop