普开数据大数据课程培训讲解hadoop安装步骤.docx
- 文档编号:7134842
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:17
- 大小:38.08KB
普开数据大数据课程培训讲解hadoop安装步骤.docx
《普开数据大数据课程培训讲解hadoop安装步骤.docx》由会员分享,可在线阅读,更多相关《普开数据大数据课程培训讲解hadoop安装步骤.docx(17页珍藏版)》请在冰豆网上搜索。
普开数据大数据课程培训讲解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文件
//vmtmstorm01:
8020---9000
修改hdfs-site.xml文件
50070--secondarynamenode:
50070
修改mapred-site.xml文件
--jobtrackerhaconf-->
9001
+UseParallelGC
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.
将该配置拷贝至所有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服务启停:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 课程 培训 讲解 hadoop 安装 步骤