VirtualBox5.0.18+CentOS7.2+Hadoop2.7.2配置与开发
来源:互联网 发布:java udp编程 编辑:程序博客网 时间:2024/06/06 10:49
VirtualBox5.0.18+CentOS7.2+Hadoop2.7.2配置与开发
作者:duyi@163.com
密码设置:
超级用户root密码设置为: qwqwqw ;
用户hadoop的密码设置为:hadoop123,hadoop在安装时选择了作为管理员。
开始安装时间:2016年4月27日
A,安装CentOs7.2客户机
一,环境及设置
宿主机:DELL precision 5510(移动工作站,4核心XEON CPU,16G内存,512GB SSD,64位Windows10中文专业版,无线网卡,也可接入USB以太网卡); 没有使用WLAN的“Internet连接共享”。
虚拟机:VirtualBox5.0.18;
客户机:64位CentOs7.2 (ISO文件:CentOS-7-x86_64-Everything-1511.iso)。
二,客户机安装步骤
开始安装时间:2016年4月27日8点。
客户机的网卡设置:只选了Host-only网络。
在安装启动界面按向上键,选“Install CentOS7”后按回车键;
语言选择“中文”,“简体中文(中国)”;
点击“软件选择”,选“带GUI的服务器”,右侧的附加选项的选择如图一所示。图中未显示或未选择的附加项不安装。
图一
点击“完成”;点击“安装位置”,点击”完成”;
创建作为管理员的用户hadoop:
点击“开始安装”;点击“ROOT密码”设置root密码;点击“创建用户”,创建用户hadoop,选择“将此用户作为管理员”;
共1700个安装包。
等几分钟安装完成后,点击“重启”。
启动界面,如图二和图三所示。
图二CentOS7.2的启动界面
图三 piix4和intel_rapl信息(解决办法见后)
图四
按下数字键1,回车,按字符键C几次。图四这个协议同意屏幕只出现一次。
以root身份登录。
在“欢迎”对话框确定“汉语”打了勾,点击“前进”,选择“汉语(Intelligent Pin因)”后点击“前进”,然后点击“开始使用CentOSLinux”。
安装增强包
在客户机运行窗口中,点击“设备”,点击“安装增强功能”,弹出的对话框内点击“运行”。大约1分钟即可安装完毕(无需连网),如图五所示。
图五
必须重启客户机才能使得全部增强功能有效。执行立即关机命令shutdown –h now 。然后启动客户机。
客户机和宿主机之间可以共享剪贴板和互相拖放文件了。共享文件夹也有效了。共享文件夹默认只能由root操纵。可以由root将文件复制到客户机的某处,然后将权限授予普通用户。如图六所示。
图六
解决piix4和intel_rapl问题
办法:创建黑名单文件,阻止试图载入这两个模块。
$sudo vi /etc/modprobe.d/blacklist.conf
内容:
blacklist i2c_piix4
blacklist intel_rapl
然后,客户机关机,启动。
B,编辑host-only网络
到目前为止,客户机的网卡仍然处于关闭状态,无法与其它机器通讯,因此,需要启动。此时,宿主机也没有使用WLAN的“Internet连接共享”。
一,查看仅主机(Host-Only)网络的默认值:
“Oracle VM VirtualBox管理器”的”管理”,”全局设定”,“网络”。如图所示。
图七
默认未启用仅主机(Host-Only)网络的DHCP服务器。
在宿主机上未对两个网卡做任何改动!如图所示。
图八
二,修改网卡的配置文件
目的:使得该网卡自动随客户机启动,有静态的IP地址,能够和其他同在该仅主机(Host-Only)网络的客户机互相ping通。
1,查看网络信息
图九
2,查看和编辑enp0s3的配置文件
/etc/sysconfig/network-scripts/ifcfg-enp0s3
将ifcfg-enp0s3的内容改为:
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF= no
IPV6_DEFROUTE= no
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=a405ee0f-b609-43f2-afda-797a91344396
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.56.2
PREFIX=24
GATEWAY=192.168.56.1
DNS1=192.168.56.1
IPV6_PEERDNS= no
IPV6_PEERROUTES= no
3,关闭客户机后启动
#shutdown -h now
可见客户机IP设置成功。
客户机(192.168.56.2)和宿主机(192.168.56.1)可以互相ping通。但客户机此时不能连接Internet。
4,设置主机名
编辑/etc/hosts文件。
127.0.0.1 localhost localhost.localdomain localhost4localhost4.localdomain4
::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6
192.168.56.2 master
C,关闭防火墙
#systemctlstop firewalld.service #停止firewall
#systemctldisable firewalld.service #禁止firewall开机启动
#firewall-cmd--state #查看默认防火墙状态(关闭后显示not running,开启后显示running)
D,SSH免密码登录
SSH免密码登录的原理:Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Slave(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。
当Master通过ssh连接Salve时,Salve就会生成一个随机数,并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave, Slave确认解密数无误之后就允许Master进行连接了。
这就是一个公钥认证过程,其间不需要用户手工输入密码。
1,生成密钥
用户hadoop登录客户机。进入用户的home目录,执行如下命令:
$ssh-keygen -t rsa-P '' -f ~/.ssh/id_rsa
# 注解:ssh-keygen表示生成密钥;-t指定密钥类型;-P 提供密语;-f生成的密钥文件;这条命令表示生成了一个未加密的密钥对,此时生成的/home/hadoop/.ssh目录下会生成 id_rsa和id_rsa.pub两个文件,前者是私钥,后者是公钥。
密钥类型也可以使用dsa。如果采用dsa加密算法,则将命令和文件中的rsa换成dsa即可。
图十
2,密钥处理
1)将公钥追加到授权key中:
$cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
2)将授权key文件权限改为600:
$chmod 600 ~/.ssh/authorized_keys
图十一
3)切换到root用户,修改ssh配置文件
/etc/ssh/sshd_config文件的属主是root,而且权限是600,所以root才能修改该文件。图形化环境中,可以用gedit改文件。
su root
#gedit /etc/ssh/sshd_config
4)去掉/etc/ssh/sshd_config内下列几行前的注释
RSAAuthentication yes # 启用 RSA认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
5)验证是否可以免密码登录
客户机关机,然后启动,以hadoop身份登录客户机,然后做验证:
$ssh localhost
Last login: Thu Sep 10 07:38:10 2015 from localhost出现这样的信息,表示SSH免密码登录配置成功。 提示:第一次连接的时候可能会提示是否要连接,输入yes即可。
图十二
E,安装JDK
root从共享文件夹复制jdk-7u79-linux-x64.gz到root的桌面,解压到/usr,将解压出的目录jdk1.7.0_79及其子目录和文件的属主以及用户组改为hadoop。
# tar zxf jdk-7u79-linux-x64.gz -C /usr
# chown -hR hadoop /usr/jdk1.7.0_79
# chgrp -hR hadoop /usr/jdk1.7.0_79
配置JAVA_HOME环境变量
用户hadoop登录客户机后,在/home/hadoop/ .bashrc末尾添加:
# JAVA Eniveronment
export JAVA_HOME=/usr/jdk1.7.0_79
exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar
export PATH=$JAVA_HOME/bin:$PATH
使环境变量立即生效
$source /home/hadoop/.bashrc
测试jdk是否安装成功
$java –version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixedmode)
出现以上信息就表示安装成功了。
还可以测试一个Helloworld.java程序的成功编译与运行。
F,安装Hadoop
root登录客户机后从共享文件夹复制宿主机下载的hadoop-x.x.x.tar.gz到root的桌面。然后解压hadoop-x.x.x.tar.gz;解压后会得到目录名称为hadoop-x.x.x的目录,将该目录(包括其子目录和文件)的所有者属性以及组属性改为hadoop(用chown –hR和chgrp -hR命令)。最后,复制到/usr中。
# tar -zxvf hadoop-2.7.2.tar.gz
# cp -r hadoop-2.7.2 /usr
# chown -hR hadoop /usr/hadoop-2.7.2
# chgrp -hR hadoop /usr/hadoop-2.7.2
G,Hadoop群集的3种使用模式
1. 本机独立模式(Local (Standalone)Mode);
2. 伪分布模式(Pseudo-Distributed Mode);
3. 全分布模式(Fully-Distributed Mode)。
一, 本机孤岛模式(Local (Standalone) Mode)
这是Hadoop的默认模式,Hadoop作为单个java进程运行。这种模式方便调试程序。在/usr/hadoop-x.x.x内建立目录input;将hadoop-x.x.x的conf目录内的全部后缀名为xml的文件复制到input目录内,表示被分析的数据来源;然后用hadoop找出并显示与给定的正则表达式匹配的项。输出结果放置在output目录内。
注意,每次运行前,如果目录output存在,则用删除它。(命令: rm -r output)。
1, 对于Hadoop-1.2.1
$ cd /usr/hadoop-1.2.1
$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jarhadoop-examples-*.jar grep input output 'dfs[a-z.]+'
$ cat output/*
结果: 1 dfsadmin
2,对于Hadoop-2.7.2
$mkdir input
$ cp etc/hadoop/*.xmlinput
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jargrep input output 'dfs[a-z.]+'
$ cat output/*
结果: 1 dfsadmin
二,伪分布模式(Pseudo-Distributed Mode)
Hadoop能够以伪分布式在单节点上运行,每个Hadoop新进程在单独的java进程内运行。这可分为两种运行方式:本地运行和在YARN上运行。
1,配置
将/usr/hadoop-2.7.2/etc/hadoop内的部分文件更改为如下所示:
1)core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
2)hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
3)检查$ ssh localhost无需密码
2,本地运行MapReduce作业
接下来的指令是为了在本地运行一个MapRerduce作业。如果想在YARN上执行一个作业,参见“YARN on Single Node”。
1)格式化文件系统:
$cd /usr/hadoop-2.7.2
$bin/hdfs namenode –format
这一步只需做一次。
。。。省略某些输出。。。
2)启动NameNode进程和DataNode进程:
$ sbin/start-dfs.sh
注意;
Hadoop-2.7.2不推荐使用start-all.sh 。
此时这两个进程没有被设置为随客户机启动而自动启动。
结果:
3)查看全部java进程:
4)浏览NameNode的Web接口:
http://localhost:50070/
5)建立用于执行MapReduce作业的HDFS目录
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/hadoop
命令中的红色hadoop是一个用户名
6)将本地文件上传到HDFS的目录input中
本地文件:/usr/hadoop-2.7.2/etc/hadoop内的全部文件。
$ bin/hdfs dfs -put etc/hadoop input
7)运行示例
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
8)将output从这个分布式系统复制到本地后查看
$ bin/hdfs dfs -get output output
$ cat output/*
结果如图所示:
7)或者在分布式系统上看output的内容
$bin/hdfs dfs -cat output/*
结果如图所示:
9)停止Hadoop
当完成了全部任务后,可以关闭进程。
$ sbin/stop-dfs.sh
结果如图所示:
3,在YARN上运行
只需另外设置几个参数和运行ResourceManager进程与NodeManager进程即可。
假定已经完成了这些命令:
1)格式化文件系统:
$cd /usr/hadoop-2.7.2
$bin/hdfs namenode –format
2)启动NameNode进程和DataNode进程:
$ sbin/start-dfs.sh
3)配置:
将/usr/hadoop-2.7.2/etc/hadoop内的部分文件更改为如下所示:
mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
4)启动ResourceManager和NodeManager:
运行sbin/start-yarn.sh
5)浏览ResourceManager的Web接口:
http://localhost:8088/
6)Run a MapReduce job
运行MapReduce作业。
7)Stop the daemons with:
$ sbin/stop-yarn.sh
三,完全分布模式
完全分布模式部分:待续。
X,问题与答案
1,无法挂载符合USB2.0或3.0标准的U盘的解决。
只支持USB1.1,而且无法挂载符合USB3.0标准的U盘。
办法:根据VirtualBox安装目录内的VirtualBox.chm的“8.36. VBoxManageextpack”,执行如图所示的命令:
在客户机的“设置”,“USB设备”内可以选择“USB3.0(xHCI)控制器”了。然后启动客户机,在宿主机上插入非NTFS格式的优盘,右击客户机优盘插头图标,选择优盘,该优盘会被自动挂载,如图所示:
2,经过实验得知,如果是在/home/hadoop/.bash_profile末尾添加下列代码,则hadoop2.7.2通过“sbin/start-dfs.sh”启动节点时,会出现找不到JAVA_HOME错误。为什么?
Y,引用
[1] http://hadoop.apache.org/docs/current/hadoop-project-dist/
[2] http://hadoop.apache.org/docs/current/hadoop-project-dist/
hadoop-common/SingleCluster.html
- VirtualBox5.0.18+CentOS7.2+Hadoop2.7.2配置与开发
- VirtualBox5.0.18+CentOS7.2+Hadoop2.7.2配置与开发(2)用YARN完成WordCount作业
- CentOS7安装配置hadoop2.7.2
- centos7 安装virtualbox5.1
- Centos7中hadoop2的eclipse开发环境配置
- virtualbox5.0 centos7 mini 安装
- CentOS7 64位系统安装配置hadoop2.7.2
- Hadoop2.9.0安装与配置(一)Linux centos7系统的安装与配置
- centos7下编译hadoop2.7.2
- Centos7.2安装Hadoop2.6.0
- CentOS7.0安装配置hadoop2.7.0
- 如何在virtualbox5.1.4上安装centos7
- Mac Hadoop2.7.2的安装与配置
- CentOS7 + Hadoop2.7.3开发环境搭建
- CentOS7.2下Hadoop2.7.2的集群搭建
- CentOS7安装Hadoop2.7.2实录整理
- centos7搭建hadoop2.7.2完全分布式集群
- centos7 开发环境配置
- Struts
- 每日一练-----顺时针打印矩阵
- nova-compute 部署 instance 详解 - 每天5分钟玩转 OpenStack(28)
- android中点击item时通过不同数据进行不同的操作
- 最大堆
- VirtualBox5.0.18+CentOS7.2+Hadoop2.7.2配置与开发
- [二分+DFS]南蛮图腾
- 使用工具生成代码,是很有必要的事情
- 升级到win10后wamp不可用的问题
- 12 类
- 给入门的QT学者推荐一些源码网站
- MC9S12XS128单片机,PWM模块速览
- mysql 5.7版本无法启动/目录无data文件夹 的解决办法
- JQuery 核心函数 介绍如何使用