Hadoop伪分布式环境搭建

环境配置:VMware10 + CentOS 6.5 + JDK1.7.0_67 + Hadoop 2.5.0

注意:

①除必须外,一定要使用普通用户操作;

②hadoop的相关命令在没有配置其环境变量的情况下,需要在相应的脚本文件目录操作;

③涉及浏览器访问的要使用主流浏览器(如Google Chrome);

一、系统环境准备工作

1、把网卡IP设置成静态(NAT模式)

⑴查看网卡IP:ip a或者ifconfig



⑵配置VPN(Virtual Private Network 虚拟专用网络)

①查看NAT模式子网IP、子网掩码、网关IP;


②右键选择网络图标,点击编辑连接;



③配置VPN(网卡名称默认为“System eth0”,如果只有一个网卡,直接编辑即可,如果有多个网卡,则先删除默认名称的网卡,再选择名为“Auto eth1”的网卡编辑;通常新创建的虚拟机只有一个默认网卡,如果是克隆的虚拟机则自动生成新网卡“Auto eth1”





IPV4页面设置;方法:手动;添加:地址 子网掩码 网关;DNS服务器;(需要root权限确认)


 

2、网卡配置

⑴修改网卡文件

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

注意:克隆的虚拟机ifcfg-eth0文件名发生了变化,可以先到目录下# cd /etc/sysconfig/network-scripts/,发现类似文件重命名为ifcfg-eth0即可。

ONBOOT=yes      (把网卡设置成开机启动

BOOTPROTO=static   (把DHCP改为static,Linux严格区分大小写,一定要注意

IPADDR=192.168.89.100 (IP地址,网段下的3~255任选一即可)

NETMASK=255.255.255.0 (子网掩码,固定为255.255.255.0

GATEWAY=192.168.89.2   (网关,前三位相同,末位设置为2,是NAT模式特有的做法

DNS1=192.168.89.2  (同网关)





修改网卡信息

# vi /etc/udev/rules.d/70-persistent-net.rules

注意:无论是新创建的虚拟机还是通过克隆的虚拟机,设备的MAC地址是设备的唯一标识,这里如果有则需要删除原来的网卡信息,并修改现在的网卡信息NAME="eth0" 。



修改后:



⑵重启网卡

# ifup eth0  (Linux中eth0,eth1,eth2分别表示网卡一,网卡二,网卡三。。。)



⑶重启网络服务

# service network restart 



⑷重启虚拟机后的网卡



3、修改主机名(永久)

⑴修改主机名(虚拟机重启后生效)

# vi /etc/sysconfig/network

HOSTNAME=bruce.mydomain



修改后重启前主机名:



⑵重启后查看主机名

$ hostname



⑶注意:  

①集群内部的主机名通常都会使用统一的命名格式;

②hadoop里主机名不能使用下划线;

③示例:bruce01.mydomain

      bruce02.mydomain

      bruce03.mydomain

4、添加主机名映射

# vi /etc/hosts

注意:在最后一行添加:IP地址  主机名  

如:192.168.89.100     bruce.mydomain



5、关闭Linux防火墙和selinux安全子系统

⑴关闭Linux防火墙

默认情况下,防火墙只开启了22号端口,会影响集群通讯

# service iptables stop  (关闭防火墙服务)

# service iptables status  (查看防火墙状态)

# chkconfig iptables off  (设置为开机不启动)

拓展(不需要操作):

# chkconfig --list       (列出所有的系统服务)

# chkconfig --list | grep iptables  (查询某个系统服务)



关闭selinux,是一个安全子系统,它能控制程序只能访问特定文件
# vi /etc/sysconfig/selinux(注意:此文件在notepad中不可见)

SELINUX=disabled   # 把enforcing改成disabled 


6、创建普通用户

后期所有操作都尽量使用普通用户来进行

# useradd hadoop(创建用户hadoop

# passwd hadoop设置密码

二、JDK安装

1、创建软件下载安装目录并授权

⑴创建软件下载安装目录

$ su -   (普通用户在/opt目录没有权限,需要切换到root用户)

# mkdir /opt/softwares/  (用于存放下载软件目录)

# mkdir /opt/modules/(用于软件安装目录)



⑵授权目录权限给之前创建的普通用户

# chown hadoop:hadoop /opt/softwares/  (授权用户及用户组)

# chown hadoop:hadoop /opt/modules/

# ll /opt/   (查看授权结果)



2、解压缩安装

# su - hadoop(除非必须,全部使用普通用户来操作)

$ tar -zxvf /opt/softwares/jdk-7u67-linux-x64.tar.gz -C /opt/modules/

使用xshell上传安装包(打开xftp快捷键:Ctrl+Alt+F):



解压缩安装JDK



3、配置环境变量

$ su -   (修改profile文件需要root权限) 

# vi /etc/profile  (环境变量文件)

JAVA_HOME=/opt/modules/jdk1.7.0_67

export PATH=$PATH:$JAVA_HOME/bin



4、测试安装是否成功(卸载其他软件捆绑安装的JDK)

# java -version (如果结果不是自己安装的,则需要查询并卸载捆绑安装的JDK)

拓展(无需操作):

# rpm -qa  (查看所有已经安装的rpm包)

# rpm -qa | grep -i java   (-i 忽略大小写,查询已经安装的JDK)

# rpm -e --nodeps java-1.7.0-open   (卸载捆绑安装的JDK)



三、Hadoop安装配置

1、Hadoop安装

$ tar -zxf /opt/softwares/hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/modules/



2、HDFS配置(Hadoop Distributed File System)

配置文件目录:Hadoop安装目录/etc/hadoop/

⑴修改hadoop-env.sh

export JAVA_HOME=/opt/modules/jdk1.7.0_67



⑵修改core-site.xml

<!--NameNode的访问URI,也可以写为IP,8020为默认端口,可改-->

<property>

<name>fs.defaultFS</name>

<value>hdfs://bruce.mydomain:8020</value>

</property>

<!--临时数据目录,用来存放数据,格式化namenode时会自动生成-->

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/modules/hadoop-2.5.0/data</value>

</property>



⑶修改hdfs-site.xml

<configuration>

<!--Block的副本数,伪分布式要改为1-->

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>


⑷格式化namenode

$ cd /opt/modules/hadoop-2.5.0-cdh5.3.6/

$ bin/hdfs namenode -format   (格式化namenode时会自动生成data目录)

⑸启动守护进程(服务)

cd /opt/modules/hadoop-2.5.0-cdh5.3.6/

$ sbin/hadoop-daemon.sh start namenode  (stop用来停止守护进程)

$ sbin/hadoop-daemon.sh start datanode 

$ jps   (Process Status查看进程,jps用来查看Java进程,数字为PID,即Process id)

PS:若提示某个服务已经启动,可以去/tmp目录下删除对应的pid文件;



⑹测试

①打开浏览器:http://bruce.mydomain:50070/

打开网址,Utilities-->Browse file system





②上传文件:(测试HDFS)

cd /opt/modules/hadoop-2.5.0-cdh5.3.6/

$ vi a.txt  (随便创建一个文件a.txt,测试用)

$ bin/hdfs dfs -mkdir /input   (在HDFS上创建文件夹)

$ bin/hdfs dfs -put a.txt /input   (把本地文件拷贝到HDFS)





3、YARN配置

⑴修改yarn-env.sh和mapred-env.sh文件

export JAVA_HOME=/opt/modules/jdk1.7.0_67   (取消该行注解并配置)





⑵修改yarn-site.xml文件

<!--NodeManager上运行的辅助(auxiliary)服务,需配置成mapreduce_shuffle,才可运行MapReduce程序-->

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<!--指定resourcemanager主机-->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>bruce.mydomain</value>

</property>



⑶修改mapred-site.xml文件

$ cp mapred-site.xml.template  mapred-site.xml   (拷贝并重命名文件为mapred-site.xml)

<!--mapreduce是一种编程模型,运行在yarn平台上面-->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>



⑷修改slaves文件

bruce.mydomain      (记录哪些主机是DataNode,每行一个主机名,删除原来的localhost)



⑸启动yarn

$ cd /opt/modules/hadoop-2.5.0-cdh5.3.6/

$ sbin/yarn-daemon.sh start resourcemanager

$ sbin/yarn-daemon.sh start nodemanager



⑹测试

①yarn的作业监控平台:http://bruce.mydomain:8088

(显示yarn平台上运行job的所有资源(CPU、内存)等信息)



②运行一个mapreduce作业

(需要启动namenode和DataNode守护进程,在http://bruce.mydomain:50070上查看目标文件和结果文件)

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input /output

PS:运行官方提供的jar包,进行文件内单词统计(该例子是以tab键‘\t’作为单词间的分隔符);

程序名:wordcount  ;

/input是输入路径,统计目录里的所有文件(可以上传多个文件);

/output是输出路径,为了防止结果被意外覆盖,Hadoop规定输出文件一定不能存在;

可以打开http://bruce.mydomain:8088,查看运行信息;

$ bin/hdfs dfs -cat /output/p*   (命令窗口查看统计结果)



yarn平台监控wordcount运行:



wordcount运行结果:



四、配置日志服务器

(如果没有启动historyserver服务,则点击history无效;此外,还需要在Windows目录添加域名映射,即在C:\Windows\System32\drivers\etc里面的hosts文件里添加映射

(历史服务:可以查看已经运行完成的mapreduce作业记录,比如本次作业用了多少map、reduce、作业提交时间、启动时间、完成时间等信息;)

1、修改yarn-site.xml文件

<!--启用日志聚合功能-->

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

<!--日志保留时间,单位秒-->

<property>

<name>yarn.log-aggregation.retain-seconds</name>

<value>86400</value>

</property>



2、修改mapred-site.xml文件

<!--JobHistory服务的IPC地址(IPC:Inter-Process Communication进程间通信)-->

<property>

<name>mapreduce.jobhistory.address</name>

<value>bruce.mydomain:10020</value>

</property>

<!--日志的web访问地址-->

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>bruce.mydomain:19888</value>

</property>



3、重启yarn服务

$ sbin/yarn-daemon.sh stop resourcemanager

$ sbin/yarn-daemon.sh stop nodemanager

$ sbin/yarn-daemon.sh start resourcemanager

$ sbin/yarn-daemon.sh start nodemanager



4、启动historyserver服务

$ sbin/mr-jobhistory-daemon.sh start historyserver



5、再次运行mapreduce作业(必须改变输出目录)

$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input /output2



查看mapreduce的运行历史及日志:





  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值