《2022年自己配置HADOOP..[整 .pdf》由会员分享,可在线阅读,更多相关《2022年自己配置HADOOP..[整 .pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、总体介绍虚拟机 4 台,分布在 2 个物理机上, 配置基于 hadoop 的集群中包括4 个节点: 1 个 Master,3 个 Salve,节点之间局域网连接,可以相互ping 通, Ip 分布为:168.5.15.112 hadoop1 (Master)168.5.15.116 hadoop2 (Slave)168.5.15.207 hadoop3 (Slave)168.5.15.201 hadoop4 (Slave)操作系统为RHEL5.4 64bit,GNU/Linux2.6.9Master 机器主要配置NameNode 和 JobTracker 的角色,负责总管分布式数据和分解任务的
2、执行; 3 个 Salve 机器配置 DataNode 和 TaskTracker 的角色,负责分布式数据存储以及任务的执行。其实应该还应该有1 个 Master 机器,用来作为备用,以防止Master 服务器宕机,还有一个备用马上启用。后续经验积累一定阶段后补上一台备用Master 机器。环境准备创建账户使用 root 登陆所有机器后,所有的机器都创建hadoop 用户useraddhadooppasswd hadoop此时在/home/ 下就会生成一个hadoop 目录,目录路径为/home/hadoop使用 hadoop 用户登录并创建相关的目录定义需要数据及目录的存放路径:定义代码及工
3、具存放的路径:mkdir -p /home/hadoop/sourcemkdir -p /home/hadoop/tools定义数据节点存放的路径到根目录下的hadoop 文件夹 , 这里是数据节点存放目录,需要有足够的空间存放mkdir -p /hadoop/hdfsmkdir -p /hadoop/tmpmkdir -p /hadoop/log设置可写权限chmod -R 777 /hadoop定义 java 安装程序路径:mkdir -p /usr/java安装 JDK1将下载好的 jdk-6u33-linux-x64-rpm.bin通过 SSH 上传到/usr/java 下scp-r
4、./jdk-6u32-linux-x64.binroothadoop1:/usr/java名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 2进入JDK 安装目录cd /usr/java 且执行chmod +x jdk-6u33-linux-x64-rpm.bin3执行./jdk-6u33-linux-x64-rpm.bin4 配置环境变量,vi /etc/profile,在行末尾添加export JAVA_HOME=/usr/
5、java/jdk1.6.0_33export CLASSPATH=.:$JAV A_HOME/lib/tools.jar:/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH5执行chmod +x profile将其变成可执行文件6使配置立即生效source /etc/profile7执行java -version 查看是否安装成功这个步骤所有机器都必须安装roothadoop1 bin# java -versionjava version 1.6.0_33Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
6、JavaHotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)修改主机名修改主机名,所有节点均一样配置1 连接到主节点168.5.15.112 ,修改network,执行vi /etc/sysconfig/network,修改HOSTNAME=hadoop12 修改hosts 文件, vi /etc/hosts ,在行末尾添加:168.5.15.112 hadoop1168.5.15.116 hadoop2168.5.15.207 hadoop3168.5.15.201 hadoop43 执行hostname hadoop14 执行e
7、xit 后重新连接可看到主机名以修改OK其他节点也修改主机名后添加Host, 或者 host 文件可以在后面执行scp 覆盖操作配置 SSH 无密码登陆SSH 无密码原理简介:首先在hadoop1 上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的slave(hadoop2-hadoop4)机器上。然后当master 通过 SSH 连接 slave 时, slave 就会生成一个随机数并用master 的公钥对随机数进行加密,并发送给master。最后, master 收到加密数之后再用私钥解密,并将解密数回传给slave,slave 确认解密数无误之后就允许master 不输入密
8、码进行连接了具体步骤(在root 用户和 hadoop 用户登陆情况下分别执行,hadoop 用户密码必须设置)1执行命令ssh-keygen -t rsa 之后一路回车,查看刚生成的无密码钥对:cd .ssh 后执行ll (两个 l 字母)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 2 把 id_rsa.pub 追加到授权的key 里面去执行命令cat /.ssh/id_rsa.pub /.ssh/authorized_
9、keys3 修改权限:执行 chmod 600 /.ssh/authorized_keys4 确保 cat /etc/ssh/sshd_config 中存在如下内容(root 下处理)RSAAuthenticationyesPubkeyAuthentication yesAuthorizedKeysFile.ssh/authorized_keyssshlocalhost (务必执行 )如果没有需要密码即可去掉前面的 #注释字符,在修改后执行重启SSH 服务命令使其生效(root 下处理)service sshdrestart5 将公钥复制到所有的slave 机器上名师资料总结 - - -精品资
10、料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 29 页 - - - - - - - - - scp/.ssh/id_rsa.pub 168.5.15.116:/然后输入 yes最后输入 slave 机器的密码6 在 slave 机器上创建.ssh 文件夹(若文件夹已存在则不需要创建)mkdir /.ssh然后执行chmod 700 /.ssh7 追加到授权文件authorized_keys 执行命令cat /id_rsa.pub /.ssh/authorized_keys然后执行chmod 600
11、/.ssh/authorized_keys8 在其他机器上重复第5 步scp/.ssh/id_rsa.pub 168.5.15.207:/名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - scp/.ssh/id_rsa.pub 168.5.15.201:/9 验证命令在 master 机器上执行ssh168.5.15.207 发现主机名由hadoop1 变成 hadoop3 即成功:按照以上步骤分别配置hadoop1,hadoo
12、p2,hadoop3,hadoop4,要求每个都可以无密码登录其他机器,如下所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - Hadoop 安装HADOOP版本最新版本hadoop-2.2.0 安装包为hadoop-2.2.0.tar.gz下载官网地址 :http:/www.apache.org/dyn/closer.cgi/hadoop/common/下载到/home/hadoop/source目录下wget http:
13、/ftp.riken.jp/net/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz解压目录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 29 页 - - - - - - - - - tar zxvf hadoop-2.2.0.tar.gz创建软连接cd /home/hadoopln -s /home/hadoop/source/hadoop-2.2.0/ ./hadoop源码配置修改/etc/profile配置
14、环境变量vi /etc/profile添加export HADOOP_HOME=/home/hadoop/hadoopexport PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbinexport HADOOP_MAPARED_HOME=$HADOOP_HOMEexport HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport YARN_HOME=$HADOOP_HOMEexport HADOOP_CONF_DIR=$HADOOP
15、_HOME/etc/hadoopexport HDFS_CONF_DIR=$HADOOP_HOME/etc/hadoopexport YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop生效配置:source /etc/profile进入 /etc/hadoop目录中cd /home/hadoop/hadoop/etc/hadoop配置 hadoop-env.sh#vi /home/hadoop/hadoop/hadoop-2.0.5-alpha/etc/hadoop/hadoop-env.shvi hadoop-env.sh在末尾添加export JAVA_HOME=/
16、usr/java/jdk1.6.0_33名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 29 页 - - - - - - - - - 编辑 core-site.xml 的配置vi core-site.xml在 configuration节点里面添加属性hadoop.tmp.dir/hadoop/tmpA basefor other temporary directories.fs.default.namehdfs:/168.5.15.112:9000- 添加 httpfs
17、 的选项hadoop.proxyuser.root.hosts168.5.15.112hadoop.proxyuser.root.groups*master 配置vi masters168.5.15.112slave 配置vi slaves添加slave 的 IP168.5.15.116168.5.15.201168.5.15.207配置 hdfs-site.xmlvi hdfs-site.xml添加节点dfs.replication3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
18、8 页,共 29 页 - - - - - - - - - dfs.namenode.name.dirfile:/hadoop/hdfs/nametruedfs.federation.nameservice.idns1dfs.namenode.backup.address.ns1168.5.15.112:50100dfs.namenode.backup.http-address.ns1168.5.15.112:50105dfs.federation.nameservicesns1dfs.namenode.rpc-address.ns1168.5.15.112:9000dfs.namenode.r
19、pc-address.ns2168.5.15.112:9000dfs.namenode.http-address.ns1168.5.15.112:23001dfs.namenode.http-address.ns2168.5.15.112:13001dfs.dataname.data.dirfile:/hadoop/hdfs/datatruedfs.namenode.secondary.http-address.ns1168.5.15.112:23002名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - -
20、 - - - 第 9 页,共 29 页 - - - - - - - - - dfs.namenode.secondary.http-address.ns2168.5.15.112:23002dfs.namenode.secondary.http-address.ns1168.5.15.112:23003dfs.namenode.secondary.http-address.ns2168.5.15.112:23003配置 yarn-site.xmlvi yarn-site.xml添加节点yarn.resourcemanager.address168.5.15.112:18040yarn.reso
21、urcemanager.scheduler.address168.5.15.112:18030yarn.resourcemanager.webapp.address168.5.15.112:18088yarn.resourcemanager.resource-tracker.address168.5.15.112:18025yarn.resourcemanager.admin.address168.5.15.112:18141yarn.nodemanager.aux-servicesmapreduce_shuffle名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
22、- - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 同步代码到其他机器同步配置代码先在 slaves的机器上也创建mkdir -p /home/hadoop/source部署 hadoop 代码,创建软连接,然后只要同步修改过的etc/hadoop 下的配置文件即可cd /home/hadoop/sourcetar zxvf hadoop-2.2.0.tar.gzcd /home/hadoopln -s /home/hadoop/source/hadoop-2.2.0/ ./hadoopscp-r/hom
23、e/hadoop/hadoop/etc/hadoop/core-site.xmlroothadoop2:/home/hadoop/hadoop/etc/hadoop/core-site.xmlscp-r/home/hadoop/hadoop/etc/hadoop/hdfs-site.xmlroothadoop2:/home/hadoop/hadoop/etc/hadoop/hdfs-site.xmlscp-r/home/hadoop/hadoop/etc/hadoop/yarn-site.xmlroothadoop2:/home/hadoop/hadoop/etc/hadoop/yarn-si
24、te.xmlscp-r/home/hadoop/hadoop/etc/hadoop/core-site.xmlroothadoop3:/home/hadoop/hadoop/etc/hadoop/core-site.xmlscp-r/home/hadoop/hadoop/etc/hadoop/hdfs-site.xmlroothadoop3:/home/hadoop/hadoop/etc/hadoop/hdfs-site.xmlscp-r/home/hadoop/hadoop/etc/hadoop/yarn-site.xmlroothadoop3:/home/hadoop/hadoop/etc
25、/hadoop/yarn-site.xmlscp-r/home/hadoop/hadoop/etc/hadoop/core-site.xmlroothadoop4:/home/hadoop/hadoop/etc/hadoop/core-site.xmlscp-r/home/hadoop/hadoop/etc/hadoop/hdfs-site.xmlroothadoop4:/home/hadoop/hadoop/etc/hadoop/hdfs-site.xmlscp-r/home/hadoop/hadoop/etc/hadoop/yarn-site.xmlroothadoop4:/home/ha
26、doop/hadoop/etc/hadoop/yarn-site.xml同步 /etc/profile和/etc/hostsscp-r /etc/profile roothadoop2:/etc/profilescp-r /etc/hosts roothadoop2:/etc/hosts其他机器以此类推操作scp-r /etc/profile roothadoop3:/etc/profilescp-r /etc/hosts roothadoop3:/etc/hosts名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
27、- - - - - - - 第 11 页,共 29 页 - - - - - - - - - scp-r /etc/profile roothadoop4:/etc/profilescp-r /etc/hosts roothadoop4:/etc/hosts同时修改各个slave 机器上的 /home/hadoop/hadoop/etc/hadoop/hadoop-env.sh 中,加上export JAVA_HOME=/usr/java/jdk1.6.0_33Hadoop 启动格式化集群以下用 hadoop 用户执行hadoop namenode-format -clusterid clust
28、ername启动 hdfs执行start-dfs.sh开启 hadoop dfs 服务启动 Yarn开启 yarn 资源管理服务start-yarn.sh启动 httpfs开启 httpfs 服 务httpfs.sh start使得对外可以提高http 的 restful 接口服务Http 安装结果验证验证 hdfs在各台机器执行jps 看进程是否都已经启动了roothadoop1 hadoop# jps27113 ResourceManager27546 Bootstrap26793 DataNode27232 NodeManager26387 SecondaryNameNode26075
29、NameNode27633 Jps名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 29 页 - - - - - - - - - roothadoop2 # jps8966 Jps31822 DataNode31935 NodeManager进程启动正常验证是否可以登陆hadoop fs -ls hdfs:/168.5.15.112:9000/hadoop fs -mkdir hdfs:/168.5.15.112:9000/testfolderhadoop fs -cop
30、yFromLocal /testfolder hdfs:/168.5.15.112:9000/testfolder(前提为本机已创建/testfolder 目录)hadoop fs -ls hdfs:/168.5.15.112:9000/testfolder看以上执行是否正常验证 map/reduce在 master1 上,创建输入目录:hadoop fs -mkdir hdfs:/168.5.15.112:9000/input将一些 txt 文件复制到hdfs 分布式文件系统的目录里,执行以下命令hadoop fs -put /test/*.txt hdfs:/168.5.15.112:90
31、00/input在 hadoop1 上,执行 HADOOP自带的例子, wordcount包,命令如下cd $HADOOP_HOME/share/hadoop/mapreducehadoopjarhadoop-mapreduce-examples-2.2.0.jarwordcounthdfs:/168.5.15.112:9000/inputhdfs:/168.5.15.112:9000/output在 hadoop1 上,查看结果命令如下:rootmaster1 hadoop# hadoop fs -ls hdfs:/168.5.15.112:9000/outputFound 2items-r
32、w-r-r-2rootsupergroup02012-06-2922:59hdfs:/168.5.15.112:9000/output/_SUCCESS-rw-r-r-2rootsupergroup166052012-06-2922:59hdfs:/168.5.15.112:9000/output/part-r-00000roothadoop1 hadoop# hadoop fs -cathdfs:/168.5.15.112:9000/output/part-r-00000即可看到每个单词的数量验证 WEB 管理功能打开 IE,输入 http:/168.5.15.112:23001 ,可以看到
33、如下画面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 29 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 29 页 - - - - - - - - - 附录RHEL 使用 yum 安装软件1,加载光盘:cd /mediamkdir isomount /dev/hdc iso2,在 /etc/yum.re
34、pos.d/路径下找到*.repo,输入以下文本内容:basename=BaseRPM Repository for RHEL5baseurl=file:/media/iso/Server/enabled=1gpgcheck=03,修改 /usr/lib/python2.4/site-packages/yum/ 路径下的yumRepo.py 文件(可以看到, RHEL5.0的系统代码是用Python 开发的!) ,将其中由remote = url + / + relative 修改为remote =file:/mnt/iso/Server/+ / + relative 就可以了。(vi 通过
35、:/remote = ulr 即可找到)通过 yum install 可以安装,如安装gcc,输入 yum install gcc即可一般尽量不要使用yum remove另外, 如果安装光盘的版本比系统版本低,一般无法正常安装,必须找到匹配版本进行安装sshd_config 的内容#$OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $# This is the sshd server system-wide configuration file.See# sshd_config(5) for more information.#
36、 This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin# The strategy used for options in the default sshd_config shipped with# OpenSSH is to specify options with their default value where# possible, but leave them commented.Uncommented options changea# default value.#Port 22#Protocol 2,1Prot
37、ocol 2#AddressFamily any名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 29 页 - - - - - - - - - #ListenAddress 0.0.0.0#ListenAddress :# HostKey for protocol version 1#HostKey /etc/ssh/ssh_host_key# HostKeys for protocol version 2#HostKey /etc/ssh/ssh_host_rsa_ke
38、y#HostKey /etc/ssh/ssh_host_dsa_key# Lifetime andsize of ephemeral version 1 server key#KeyRegenerationInterval 1h#ServerKeyBits 768# Logging# obsoletes QuietMode and FascistLogging#SyslogFacility AUTHSyslogFacility AUTHPRIV#LogLevel INFO#Authentication:#LoginGraceTime 2m#PermitRootLogin yes#StrictM
39、odes yes#MaxAuthTries 6#RSAAuthentication yes#PubkeyAuthentication yes#AuthorizedKeysFile.ssh/authorized_keys# For this to work you will also needhost keys in /etc/ssh/ssh_known_hosts#RhostsRSAAuthentication no# similar for protocol version 2#HostbasedAuthentication no# Change to yesif you dont trus
40、t /.ssh/known_hosts for# RhostsRSAAuthentication and HostbasedAuthentication#IgnoreUserKnownHosts no# Dont readthe users/.rhosts and /.shostsfiles#IgnoreRhosts yes# To disable tunneled clear text passwords, changeto no here!#PasswordAuthentication yes#PermitEmptyPasswords noPasswordAuthentication ye
41、s名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 29 页 - - - - - - - - - # Change to no to disable s/key passwords#ChallengeResponseAuthentication yesChallengeResponseAuthentication no# Kerberos options#KerberosAuthentication no#KerberosOrLocalPasswd yes#Kerbero
42、sTicketCleanup yes#KerberosGetAFSToken no# GSSAPI options#GSSAPIAuthentication noGSSAPIAuthentication yes#GSSAPICleanupCredentials yesGSSAPICleanupCredentials yes# Set this to yes to enable PAM authentication, account processing,# and sessionprocessing. If this is enabled, PAM authentication will# b
43、e allowed through the ChallengeResponseAuthentication mechanism.# Depending on your PAM configuration, this may bypassthe setting of# PasswordAuthentication, PermitEmptyPasswords, and# PermitRootLoginwithout-password. If you just want the PAM account and# session checks to run without PAM authentica
44、tion, then enablethis but set# ChallengeResponseAuthentication=no#UsePAM noUsePAM yes#Accept locale-related environment variablesAcceptEnvLANGLC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGESAcceptEnv LC_PAPER LC_NAMELC_ADDRESS LC_TELEPHONELC_MEASUREMENTAcceptEnv LC_IDENTIFICATIONLC_ALL#Allo
45、wTcpForwardingyes#GatewayPorts no#X11Forwarding noX11Forwarding yes#X11DisplayOffset 10#X11UseLocalhost yes#PrintMotd yes#PrintLastLog yes#TCPKeepAlive yes#UseLogin no#UsePrivilegeSeparation yes名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 29 页 - - - - - - -
46、- - #PermitUserEnvironment no#Compression delayed#ClientAliveInterval0#ClientAliveCountMax3#ShowPatchLevel no#UseDNS yes#PidFile /var/run/sshd.pid#MaxStartups 10#PermitTunnel no#ChrootDirectory none# no default banner path#Banner /some/path# override default of no subsystemsSubsystemsftp/usr/libexec
47、/openssh/sftp-server名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 29 页 - - - - - - - - - 格式化集群的输出roothadoop1 hadoop# hadoop namenode -format -clusterid clusternameDEPRECATED: Use of this script to executehdfs command is deprecated.Instead usethe hdfs command
48、for it.13/08/16 16:31:01 INFO namenode.NameNode: STARTUP_MSG:/*STARTUP_MSG: Starting NameNodeSTARTUP_MSG:host = hadoop1/168.5.15.112STARTUP_MSG:args= -format, -clusterid, clusternameSTARTUP_MSG:version = 2.0.5-alphaSTARTUP_MSG:classpath=/home/hadoop/hadoop/etc/hadoop:/home/hadoop/hadoop/share/hadoop
49、/common/lib/kfs-0.3.jar:/home/hadoop/hadoop/share/hadoop/common/lib/guava-11.0.2.jar:/home/hadoop/hadoop/share/hadoop/common/lib/jackson-jaxrs-1.8.8.jar:/home/hadoop/hadoop/share/hadoop/common/lib/snappy-java-1.0.3.2.jar:/home/hadoop/hadoop/share/hadoop/common/lib/commons-digester-1.8.jar:/home/hado
50、op/hadoop/share/hadoop/common/lib/jets3t-0.6.1.jar:/home/hadoop/hadoop/share/hadoop/common/lib/servlet-api-2.5.jar:/home/hadoop/hadoop/share/hadoop/common/lib/jetty-util-6.1.26.jar:/home/hadoop/hadoop/share/hadoop/common/lib/commons-net-3.1.jar:/home/hadoop/hadoop/share/hadoop/common/lib/zookeeper-3