hadoop深度实战.docx
《hadoop深度实战.docx》由会员分享,可在线阅读,更多相关《hadoop深度实战.docx(44页珍藏版)》请在冰豆网上搜索。
hadoop深度实战
1Linux虚拟环境搭建
1.1安装VmWare
安装完可以看到vmnet1和vmnet8两块虚拟网卡
1.2安装linux虚拟机
安装好以后检查应该可以上外网
1.3配置Linux虚拟机
1.3.1用root用户登录
先用sudopasswdroot改root密码,
然后在系统的"登录窗口"选项中设置允许本地管理员登陆就可以了
而Ubuntu9.10不需要在登录窗口中设置,目前我用这个版本也不需要设置
1.3.2开启ssh服务
本机开放SSH服务就需要安装openssh-server
sudoapt-getinstallopenssh-server
然后确认sshserver是否启动了:
如果看到sshd那说明ssh-server已经启动了。
如果没有则可以这样启动:
sudo/etc/init.d/sshstart
1.3.3开启ftp服务
sudoapt-getinstallvsftpd
修改etc/vsftpd.conf配置文件
write_enable=YES#允许上传
anon_upload_enable=YES#允许匿名上传
anon_mkdir_write_enable=YES#允许匿名用户建立文件夹
local_umask=022#更改上传文件的权限,777-022=755
重启
sudo/etc/init.d/vsftpdrestart
1.3.4开启telnet服务
1)sudoapt-getinstallxinetdtelnetd
2)sudovi/etc/xinetd.conf并加入以下一行
telnetstreamtcpnowaittelnetd/usr/sbin/tcpd/usr/sbin/in.telnetd
3)sudovi/etc/xinetd.conf并加入以下内容:
#Simpleconfigurationfileforxinetd
#
#Somedefaults,andinclude/etc/xinetd.d/
defaults
{
#Pleasenotethatyouneedalog_typelinetobeabletouselog_on_success
#andlog_on_failure.Thedefaultisthefollowing:
#log_type=SYSLOGdaemoninfo
instances=60
log_type=SYSLOGauthpriv
log_on_success=HOSTPID
log_on_failure=HOST
cps=2530
}
includedir/etc/xinetd.d
4)sudovi/etc/xinetd.d/telnet并加入以下内容:
#default:
on
#description:
Thetelnetserverservestelnetsessions;ituses/
#unencryptedusername/passwordpairsforauthentication.
servicetelnet
{
disable=no
flags=REUSE
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure+=USERID
}
5)重启机器或重启网络服务sudo/etc/init.d/xinetdrestart
7)使用root登录
mv/etc/securetty/etc/securetty.bak这样root可以登录了。
也可这样:
修改/etc/pam.d/login这个文件。
只需将下面一行注释掉即可。
#authrequiredlib/security/pam_securetty.so
2在Linux上安装配置Hadoop
2.1安装JDK1.6
2.1.1检查jdk当前版本
root@ubuntu:
~#java-version
2.1.2下载和安装JDK
直接安装jre环境(这个不带开发环境,推荐用下面的安装方法)
sudoadd-apt-repository"debhardymultiverse"
sudoapt-getupdate
sudoapt-getinstallsun-java6-jdk
注:
此次安装要在机器的图形终端上执行,不能在远程登录工具上执行
安装带编译环境的jdk
1.下载gz安装包
2.安装
sudotarzxvf./jdk-7-linux-i586.tar.gz-C/usr/lib/jvm
cd/usr/lib/jvm
sudomvjdk1.7.0/java-7-sun
vi/etc/profile
exportJAVA_HOME=/usr/lib/jvm/java-7-sun
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:
${JAVA_HOME}/lib:
${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:
$PATH
2.1.3配置环境变量
vi/etc/profile
#setjavaenv
exportJAVA_HOME="/usr/lib/jvm/java-7-sun"
exportJRE_HOME="$JAVA_HOME/jre"
exportCLASSPATH=".:
$JAVA_HOME/lib:
$JAVA_HOME/jre/lib:
$CLASSPATH"
exportPATH="$JAVA_HOME/bin:
$PATH"
2.2配置ssh免密码登录
2.2.1检查ssh当前版本
Ssh–version
2.2.2安装ssh
Sudoapt-getinstallssh
2.2.3配置为可以无密码登录本机
ls–a~
mkdir~/.ssh
ssh-keygen-tdsa-P''–f~/.ssh/id_dsa
ls~/.ssh
cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys
2.2.4验证ssh是否安装成功
Ssh–version
Sshlocalhost
2.3创建hadoop用户
2.3.1创建用户
root@ubuntu:
~#useradd-m-d/home/hadoophadoop
root@ubuntu:
~#passwdhadoop
修正:
1.vi/etc/passwd
hadoop:
x:
1001:
1001:
:
/home/hadoop:
/bin/bash
修改使用bash
2.3.2配置环境变量/etc/profile
exportHADOOP_HOME="/home/hadoop/hadoop"
exportHADOOP_VERSION="0.20.2"
2.3.3可用性设置
●Vi~/.Bashrc添加
aliasp='ps-fuhadoop'
执行
Source.bashrc
2.4安装伪分布式hadoop
2.4.1安装hadoop
下载安装包:
将hadoop-0.20.2.tar.gz上传到hadoop用户
$tar-xfhadoop-0.20.2.tar.gz
$mvhadoop-0.20.2hadoop
2.4.2配置hadoop
●$vihadoop/etc/hadoop-env.sh
exportJAVA_HOME="/usr/lib/jvm/java-6-sun"
●core-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
fs.default.name
hdfs:
//localhost:
9000
hadoop.tmp.dir
/home/hadoop/data/hadoop-${user.name}
Abaseforothertemporarydirectories.
●Hdfs-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
dfs.replication
1
●Mapred-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
mapred.job.tracker
localhost:
9001
2.4.3格式化hdfs
$./hadoopnamenode-format
12/03/2119:
07:
45INFOnamenode.NameNode:
STARTUP_MSG:
/************************************************************
STARTUP_MSG:
StartingNameNode
STARTUP_MSG:
host=ubuntu/127.0.1.1
STARTUP_MSG:
args=[-format]
STARTUP_MSG:
version=0.20.2
STARTUP_MSG:
build=https:
//svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-r911707;compiledby'chrisdo'onFriFeb1908:
07:
34UTC2010
************************************************************/
12/03/2119:
07:
46INFOnamenode.FSNamesystem:
fsOwner=hadoop,hadoop
12/03/2119:
07:
46INFOnamenode.FSNamesystem:
supergroup=supergroup
12/03/2119:
07:
46INFOnamenode.FSNamesystem:
isPermissionEnabled=true
12/03/2119:
07:
47INFOcommon.Storage:
Imagefileofsize96savedin0seconds.
12/03/2119:
07:
47INFOcommon.Storage:
Storagedirectory/tmp/hadoop-hadoop/dfs/namehasbeensuccessfullyformatted.
12/03/2119:
07:
47INFOnamenode.NameNode:
SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG:
ShuttingdownNameNodeatubuntu/127.0.1.1
************************************************************/
2.4.4启动hdfs和mapreduce
Cd/usr/hadoop/bin
./start-all.sh
2.4.5验证是否安装成功
http:
//192.168.190.129:
50070--hdfs监控页面
http:
//192.168.190.129:
50030--mapred监控页面
hadoopdfsadmin-report
2.5安装集群hadoop
2.5.1集群规划
192.168.190.132—master,NameNode,Jobtracker:
master
192.168.190.133—slave,DataNode,Tasktracker:
slave1
192.168.190.134—slave,DataNode,Tasktracker:
slave2
2.5.2修改通用配置文件
在master机器上进行如下配置:
●将伪分布式相关配置文件备份到localhost目录下
$mkdirlocalhost
$cphadoop-env.shhdfs-site.xmlcore-site.xmlmapred-site.xmlslavesmasters./localhost
●创建集群配置文件
$mkdirclaster
$cphadoop-env.shhdfs-site.xmlcore-site.xmlmapred-site.xmlslavesmasters./claster
$lsclaster
core-site.xmlhadoop-env.shhdfs-site.xmlmapred-site.xmlmastersslaves
●hadoop-env.sh
和伪分布式模式一样,不用改。
●core-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
fs.default.name
hdfs:
//master:
9000
●hdfs-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
dfs.replication
2[注:
datanode数量]
●mapred-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
--Putsite-specificpropertyoverridesinthisfile.-->
mapred.job.tracker
master:
9001
●masters
添加备份的master节点,这里没有备份master节点,可以不添加.
●Slaves
slave1
slave2
●/etc/hosts
192.168.190.132master#AddedbyNetworkManager
192.168.190.133slave1
192.168.190.134slave2
127.0.0.1localhost.localdomainlocalhost
:
:
1ubuntulocalhost6.localdomain6localhost6
127.0.0.1master
2.5.3克隆节点
从master节点克隆出slave1和slave2
2.5.4修改特性配置文件
●/etc/hostname
分别修改主机名为master,slave1,slave2
重启主机
2.5.5配置ssh免密码登录
此步骤的目地是达到master主机可以无密码登录到slave主机,所以只需将master主机的~/.ssh/authorized_keys文件拷贝到slave主机的相同目录下就可以了,因为这里是克隆的,所以不用拷贝了。
坚持是否有效:
在master节点上执行:
Sshslave1
Sshslave2
补充:
设置远程无密码登陆
这里只有cloud001是master,如果有多个namenode,或者rm的话则需要打通所有master都其他剩余节点的免密码登陆。
(将001的authorized_keys追加到002和003的authorized_keys)
进入001的.ssh目录
scp authorized_keys hduser@cloud002:
~/.ssh/authorized_keys_from_cloud001
进入002的.ssh目录
catauthorized_keys_from_cloud001>>authorized_keys
至此,可以在001上面sshhduser@cloud002进行无密码登陆了。
003的操作相同。
注:
master和slaves上的用户名要一样
2.5.6生效配置文件
$cdhadoop/conf
$cp./claster/*.
$ls-lrt
total64
-rw-r--r--1hadoophadoop11952010-02-1823:
55ssl-server.xml.example
-rw-r--r--1hadoophadoop12432010-02-1823:
55ssl-client.xml.example
-rw-r--r--1hadoophadoop28152010-02-1823:
55log4j.properties
-rw-r--r--1hadoophadoop41902010-02-1823:
55hadoop-policy.xml
-rw-r--r--1hadoophadoop12452010-02-1823:
55hadoop-metrics.properties
-rw-r--r--1hadoophadoop5352010-02-1823:
55configuration.xsl
-rw-r--r--1hadoophadoop39362010-02-1823:
55capacity-scheduler.xml
drwxr-xr-x2hadoophadoop40962012-03-2600:
57localhost
drwxr-xr-x2hadoophadoop40962012-03-2601:
00claster
-rw-r--r--1hadoophadoop2692012-03-2602:
07core-site.xml
-rw-r--r--1hadoophadoop22802012-03-2602:
07hadoop-env.sh
-rw-r--r--1hadoophadoop2512012-03-2602:
07hdfs-site.xml
-rw-r--r--1hadoophadoop2642012-03-2602:
07mapred-site.xml
-rw-r--r--1hadoophadoop142012-03-2602:
07slaves
-rw-r--r--1hadoophadoop102012-03-2602:
07masters
2.5.7格式化hdfs
$hadoopnamenode–format
12/03/2602:
09:
31INFOnamenode.NameNode:
STARTUP_MSG:
/************************************************************
STARTUP_MSG:
StartingNameNode
STARTUP_MSG:
host=master/127.0.1.1
STARTUP_MSG:
args=[-format]
STARTUP_MSG:
version=0.20.2
STARTUP_MSG:
build=https:
//svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20-r911707;compiledby'chrisdo'onFriFeb1908:
07:
34UTC201