普开数据大数据课程培训讲解hadoop安装步骤.docx

上传人:b****6 文档编号:7134842 上传时间:2023-01-21 格式:DOCX 页数:17 大小:38.08KB
下载 相关 举报
普开数据大数据课程培训讲解hadoop安装步骤.docx_第1页
第1页 / 共17页
普开数据大数据课程培训讲解hadoop安装步骤.docx_第2页
第2页 / 共17页
普开数据大数据课程培训讲解hadoop安装步骤.docx_第3页
第3页 / 共17页
普开数据大数据课程培训讲解hadoop安装步骤.docx_第4页
第4页 / 共17页
普开数据大数据课程培训讲解hadoop安装步骤.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

普开数据大数据课程培训讲解hadoop安装步骤.docx

《普开数据大数据课程培训讲解hadoop安装步骤.docx》由会员分享,可在线阅读,更多相关《普开数据大数据课程培训讲解hadoop安装步骤.docx(17页珍藏版)》请在冰豆网上搜索。

普开数据大数据课程培训讲解hadoop安装步骤.docx

普开数据大数据课程培训讲解hadoop安装步骤

普开数据大数据课程培训讲解:

hadoop安装步骤。

本次环境一共三台服务器,JAVA使用的版本是jdk1.6.0_45,zookeeper-3.4.5,hadoop-2.0.0,hive-0.10.0,hbase-0.94.6

主机名

IP地址

用途

vmtmstorm01

192.168.59.178

namenode、jobtracker

monitor04

192.168.59.173

datanode、tasktracker

monitor01

192.168.59.170

datanode、tasktracker

对于hadoop来说,在hdfs看来节点分为namenode、datanode。

namenode只有一个,datanode可以是很多;在mapreduce看来节点分为jobtracker、tasktracker,jobtracker只有一个,tasktracker有多个。

我这里是将namenode和jobtracker部署在同一节点上,datanode和tasktracker部署在其它节点上,

1.安装jdk,上传到/root目录下,执行

chmoda+xjdk-6u14-linux-x64.bin

./jdk-6u14-linux-x64.bin

将安装目录移动到/app目录下

mkdir/app

mvjdk1.6.0_45/app

建立链接:

mkdir-p/app/java/;(-p确保目录名称存在,如果目录不存在的就新创建一个)

ln-sf/app/jdk1.6.0_45/app/java/latest/

(-f:

链结时先将与dist同档名的档案删除-s:

进行软链结(symboliclink))

配置JAVA的环境变量

vi/etc/profile

添加如下内容:

exportJAVA_HOME=/app/jdk1.6.0_45

exportPATH=$JAVA_HOME/bin:

$PATH

让添加的环境变量生效执行如下命令:

source/etc/profile;java–version

2.配置网络

以root账户登录每台服务器,并执行如下操作:

vi/etc/hosts

添加如下内容:

192.168.59.178vmtmstorm01

192.168.59.173monitor04

192.168.59.170monitor01

注:

在所有服务器的/etc/hosts文件中添加如上内容;

同时,修改windows下该文件,使得个人的笔记本也能识别主机名c:

\windows\system32\drivers\etc\hosts中添加如上内容。

3.配置SSH互信

SSH互信:

在目标机器上,预先设置好经过认证的key文件,当需要访问目标机器时,目标机器通过key文件,对访问者进行自动认证,从而实现互信。

在任意一台服务器上,以bdp账号登陆(密码123)

执行如下命令,生成bdp账号的密钥对(这里是主机执行)

/usr/bin/ssh-keygen-trsa

cd~/.ssh/

cpid_rsa.pubauthorized_keys

chmod600authorized_keys

将~/.ssh目录拷贝覆盖到集群其他节点的bdp用户目录下

scp-r.ssh/192.168.59.173:

~/

scp-r.ssh/192.168.59.170:

~/

注意,要确保/etc/ssh/sshd_config的RSAAuthentication和PubkeyAuthentication为yes,(打开认证方式)改好后重启ssh服务 /sbin/servicesshdrestart

执行ssh`hostname`测试是否配置成功

4.操作系统参数优化(每台机器,且以root操作)

4.1防火墙配置:

关闭selinux/iptables(每台机器,root权限)

•关闭iptables

–停止服务:

serviceiptablesstop

–关闭服务自动启动:

chkconfig--deliptables

•关闭selinux

–修改/etc/selinux/config里

SELINUX=disabled

4.2关闭swapiness,减少swap使用倾向(每台机器,root权限)

•当系统有swap时会很慢,所以让系统最大限度的使用物理内存(默认vm.swappiness=60)

•修改/etc/sysctl.conf,增加一行vm.swappiness=0

echo"vm.swappiness=0">>/etc/sysctl.conf

•动态生效sysctl-wvm.swappiness=0(-w  临时改变某个指定参数的值)

•查看是否生效cat/proc/sys/vm/swappiness

(/proc可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的)

注:

sysctl.conf是一个用于在系统运作中查看及调整系统参数的工具

4.3最大打开文件数和最大进程数limits.conf(每台机器,root权限)

•Linux默认是1024,对于分布式文件系统太小,Hadoop有可能会报错误

•执行ulimit-a,查看openfiles项和maxuserprocesses项

•执行下面脚本,修改这两项值

•echo"*-nofile1000000">>/etc/security/limits.conf

•echo"YOUR_USER_NAME-nproc1000000">>/etc/security/limits.conf

•sysctl–p

•重启服务器,执行ulimit-a查看是否修改成功

在/etc/security/limits.conf中重复出现了多个YOUR_USER_NAME-nproc1000000

4.4屏蔽文件访问时间,优化/etc/fstab参数(每台机器,root权限)(注:

未配置)

•HDFS存储着海量文件,如果屏蔽底层Linux的文件访问时间,会提高HDFS的IO

•修改/etc/fstab,添加如下noatime,nodiration,例如

LABEL=/data1/data1ext4defaults,noatime,nodiratime12

LABEL=/data2/data2ext4defaults,noatime,nodiratime12

LABEL=/data3/data3ext4defaults,noatime,nodiratime12

•重新mount或重启机器使之生效

•注:

由于我们使用的是虚拟机,可以不配置该参数

4.5配置ntp时间同步(每台机器,root权限)

•在Hadoop集群中,要求服务器之间的时间同步

•选一台服务器作为NTPserver,修改/etc/ntp.conf如下,

restrictdefaultnomodify

server192.168.59.178

fudge192.168.59.178stratum8

并重启servicentpdrestart

•在集群其他节点上,首先关闭NTP

servicentpdstop

•执行 /usr/sbin/ntpdateNTPSERVER_IP进行同步,执行date查看是否正确

•再cron里加入同步命令:

执行crontab–e(-e:

执行文字编辑器来设定时程表,内定的文字编辑器是VI,),添加如下内容,使其每小时同步一次

测试情况:

/etc/ntp.conf文件下

192.168.59.178:

restrictdefaultnomodify

server192.168.59.178

fudge192.168.59.178stratum8

192.168.59.173:

server192.168.59.178

fudge192.168.59.178stratum10

192.168.59.173:

无修改

结果:

三台机器时间已同步

补充:

 crontab[-uuser]filecrontab[-uuser]{-l|-r|-e}

  说明:

  crontab是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。

-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。

如果不使用-uuser的话,就是表示设定自己的时程表。

  参数:

  -e:

执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL环境变数来指定使用那个文字编辑器(比如说setenvVISUALjoe)

  -r:

删除目前的时程表

  -l:

列出目前的时程表

  时程表的格式如下:

  f1f2f3f4f5program

  其中f1是表示分钟,f2表示小时,f3表示一个月份中的第几日,f4表示月份,f5表示一个星期中的第几天。

program表示要执行的程式。

  当f1为*时表示每分钟都要执行program,f2为*时表示每小时都要执行程式,其余类推

  当f1为a-b时表示从第a分钟到第b分钟这段时间内要执行,f2为a-b时表示从第a到第b小时都要执行,其余类推

  当f1为*/n时表示每n分钟个时间间隔执行一次,f2为*/n表示每n小时个时间间隔执行一次,其余类推

5.Zookeeper安装

5.1ZK配置:

单节点配置

在${ZOOKEEPER_HOME}/conf/zoo.cfg(/app/zookeeper-3.4.5-cdh4.3.0/conf/zoo.cfg)中做如下定义

tickTime=5000

dataDir=/app/zookeeper-3.4.5-cdh4.3.0/data(/tmp/zookeeper/tmp用来存放不同程序执行时产生的临时文件)

clientPort=2181

配置参数

a)tickTime:

每个tick的时间长度(毫秒),是zk中最小时间单元。

b)dataDir:

内存快照(snapshot)和transactionlog的存储目录

c)clientPort:

用于服务client连接的端口号

5.2ZK配置:

多节点配置(为3个节点的集群)

在${ZOOKEEPER_HOME}/conf/zoo.cfg(/app/zookeeper-3.4.5-cdh4.3.0/conf/zoo.cfg)中做如下定义

tickTime=5000

dataDir=/app/zookeeper-3.4.5-cdh4.3.0/data

clientPort=2181

initLimit=10

syncLimit=5

server.1=192.168.59.178:

4888:

5888

server.2=192.168.59.173:

4888:

5888

server.3=192.168.59.170:

4888:

5888

•配置参数

–initLimit:

刚选举出leader后,followers与leader连接和同步(connect/sync)的时间周期:

initLimit*tickTime。

–syncLimit:

正常工作状态下,允许followers与leader同步(sync)的时间,当follower与leader相差太大的话,该follower将被排除出集群。

–server.x=[hostname]:

nnnnn[:

nnnnn]第一个端口用于follower与leader连接,第二个端口用于leaderelection。

同时在dataDir目录下创建一个名为myid的文件,里面写入1或者2或者3,该值与zoo.cfg中的“server.#=…”的#一致

需要在每个zookeeper上均执行bin/zkServer.shstart,该集群才可以正常工作

•启动zookeeper服务:

bin/zkServer.shstart

•停止zookeeper服务:

bin/zkServer.shstop

由于HBase和Hadoop依赖于ZK,所以在停止ZK时需要首先关闭HBase和Hadoop。

•检查Zookeeper运行状态:

bin/zkCli.sh-server172.168.0.1:

2181

或者直接运行bin/zkCli.sh

在shell中运行help来查看可用命令

[zk:

localhost:

2181(CONNECTED)0]help

ZooKeeper-serverhost:

portcmdargs

connecthost:

port

getpath[watch]

lspath[watch]

setpathdata[version]

rmrpath

delquota[-n|-b]path

quit

printwatcheson|off

create[-s][-e]pathdataacl

statpath[watch]

close

ls2path[watch]

history

listquotapath

setAclpathacl

getAclpath

syncpath

redocmdno

addauthschemeauth

deletepath[version]

setquota-n|-bvalpath

6Hadoop安装

6.1Hadoop安装路径

/app/hadoop-2.0.0-cdh4.3.0

6.2配置Hadoop的环境变量

vi/etc/profile

添加如下内容:

(192.168.59.178情况)

exportHADOOP_HOME=/app/hadoop-2.0.0-cdh4.3.0

exportPATH=.:

$HIVE_HOME/bin:

$HADOOP_HOME/bin:

$JAVA_HOME/bin:

$PATH

让添加的环境变量生效执行如下命令:

source/etc/profile;

6.3设置Hadoop需要的环境变量

添加Hadoop需要的环境变量

在$HADOOP_HOME/etc/hadoop-mapreduce1目录下的hadoop-env.sh中设置Hadoop需要的环境变量,其中JAVA_HOME是必须设定的变量exportJAVA_HOME=/app/java/latest

修改slaves文件

在$HADOOP_HOME/etc/hadoop-mapreduce1目录下的slaves

添加vmtmstorm01monitor04monitor01(包含:

所有tasktracker节点的IP/Hostname列表)

masters文件

在$HADOOP_HOME/etc/hadoop-mapreduce1目录下的masters内容:

localhost

修改core-site.xml文件

fs.defaultFS

hdfs:

//vmtmstorm01:

8020---9000

Thenameforthecluster.HBasewillusethistoconnecttoHDFS

pression.codecspress.DefaultCodec,press.GzipCodec,press.BZip2Codec,press.SnappyCodec

hadoop.tmp.dir

/app/hadoop-2.0.0-cdh4.3.0/tmp

修改hdfs-site.xml文件

dfs.namenode.name.dir

/home/bdp/dfs/nn--NameNode元数据存储目录,可多个,逗号分隔

dfs.data.dir

/home/bdp/dfs/data1,/home/bdp/dfs/data2,/home/bdp/dfs/data3

dfs.blocksize

268435456

dfs.namenode.secondary.http-address

vmtmstorm01:

50070--secondarynamenode:

50070

修改mapred-site.xml文件

--jobtrackerhaconf-->

mapred.job.tracker

vmtmstorm01:

9001

mapred.local.dir

/home/bdp/mapred/local1,/home/bdp/mapred/local2,/home/bdp/mapred/local3

mapred做本地计算所使用的文件夹,可以配置多块硬盘,逗号分隔

mapred.map.tasks

1

默认每个job所使用的map数,意思是假设设置dfs块大小为64M,需要排序一个60M的文件,也会开启2个map线程,当jobtracker设置为本地是不起作用。

mapred.reduce.tasks

1

mapred.tasktracker.map.tasks.maximum

2

每服务器允许启动的最大map槽位数。

mapred.tasktracker.reduce.tasks.maximum

1

每服务器允许启动的最大reduce槽位数.

mapred.child.java.opts

-Xmx1024m-D.preferIPv4Stack=true-XX:

+UseParallelGC

Javaoptsforthetasktrackerchildprocesses.

Thefollowingsymbol,ifpresent,willbeinterpolated:

@taskid@isreplaced

bycurrentTaskID.Anyotheroccurrencesof'@'willgounchanged.

Forexample,toenableverbosegcloggingtoafilenamedforthetaskidin

/tmpandtosettheheapmaximumtobeagigabyte,passa'value'of:

-Xmx1024m-verbose:

gc-Xloggc:

/tmp/@taskid@.gc

Theconfigurationvariablemapred.child.ulimitcanbeusedtocontrolthe

maximumvirtualmemoryofthechildprocesses.

press.map.output

true

map输出结果在进行网络交换前是否以压缩格式输出,默认false,建议true,可以减小带宽占用,代价是会慢一些。

将该配置拷贝至所有tasktracker节点

将/app/hadoop-2.0.0-cdh4.3.0目录拷贝覆盖到集群其他节点,保证目录结构一致

scp-r/app/hadoop-2.0.0-cdh4.3.0192.168.59.173:

/

scp-r/app/hadoop-2.0.0-cdh4.3.0192.168.59.170:

/

6.4启动之前,我们先要格式化namenode/app/hadoop-2.0.0-cdh4.3.0下

仅在首次启动HDFS前执行

在NameNode执行

bin/hadoopnamenode-format

6.5MapReduce服务启停:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1