




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、非常实用的hadoop安装手册1 说明本文档里的服务器,目录,账户等都为示范,可以根据各自的需求进行修改,只需所有配置上下文保持一致即可。文档主要描述了面向处理大数据环境的hadoop+hive+hbase组合的安装配置,目的为减少搭建环境时能少走点弯路和起到点初级阶段的参考作用;大数据的处理博大精深,要深入了解其中精髓,需一起学习探讨。2 版本准备下载地址: 根据cdh的版本号来下载,下载的安装包都同一个cdh版本号,这样确保所有安装包没有版本兼容问题,否则会有各种各样的报错,可少走不少弯路。如下图:图 下载页面最终收集到的所需要的安装版本文件如下图所示:图 下载后的版本示意3 环境准备3.
2、1 环境准备由于条件有限,物理机器只有2台,就配置基于台2物理机的hadoop集群,用2个节点作为示例: 1个Master,1个Salve, 节点之间局域网连接,可以相互 ping 通。一台作为hadoop的namenode,一台作为datanode。如下:0 jskhjfapp01 作为namenode master1 jskhjfapp01 作为datanode slaves操作系统为 Linux Redhat.Master机器主要配置NameNode和JobTracker的角色, 负责总管分布式数据和分解任务的执行;3个Salve机器配置D
3、ataNode和TaskTracker的角色, 负责分布式数据存储以及任务的执行。其实应该还应该有1个Master机器,用来作为备用,以防止Master服务器宕机, 还有一个备用马上启用。后续经验积累一定阶段后补上一台备用Master机器。3.2 目录结构创建账号:使用root登陆所有机器后,2台创建xieyt用 户(后面都以该账号作为实验,大家可以根据自己的需要创建),密码也为xieytuseradd xieytpasswd xieyt此时在/home/下就会生成一个xieyt目录 ,目录路径为/home/xieyt,如图:创建相关的目录定义需要数据及目录的存放路:mkdir /home/x
4、ieyt/source定义代码及工具存放的路径:mkdir /home/xieyt/tools定义数据节点存放的路径到跟目录下的hadoop文件夹, 这里是数据节点存放目 录需要有足够的空间存放mkdir /home/xieyt/hdfsmkdir /home/xieyt/tmpmkdir /home/xieyt/log设置可写权限chmod -R 777 /home/xieyt定 义 java安装程序路径mkdir /home/xieyt/jdk最后如图所示:3.3 安装jdk上传jdk1.6以上版本,建议1.7以上。这里使用jdk1.8的版本:解压jdk: tar xvf jdk-8u11
5、-linux-x64.tar.gz解压后,配置环境变量:cd ls -avi .bash_profile在末尾添加:export JAVA_HOME=/home/xieyt/jdk/jdk1.8.0_11export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH如图:当然,这几行如果使用root用户,添加在 /etc/profile文件末尾效果也一样。退出重新登录后即可见生效,可以执行java version来查看是否按照java成功:如上步骤,在所有参与hado
6、op集群的集群上都要安装。3.4 修改主机名该步骤主要便于理解机器意义,可根据需要进行,后续配置如果使用ip,不使用主机名称,则可以跳过不配置。1.连接到主节点 0 ,修改 network , (root用户下执行)执行 vi /etc/sysconfig/network ,修改 HOSTNAME=jskhjfapp01连接到主节点 1 ,修改 network , (root用户下执行)执行 vi /etc/sysconfig/network ,修改 HOSTNAME=jskhjfapp022.修改hosts文件, (root用户下执行)执行cd
7、 /etc 命令后执行vi hosts ,在行末尾添加:0 jskhjfapp011 jskhjfapp02执行hostname jskhjfapp01执行exit后重新连接可看到主机名以修改OK其他节点也修改主机名后添加 Host, 或者host文件可以在后面执行scp覆盖操作。3.5 配置SSH无密码登录SSH 无密 码原理简介:a.首先在jskhjfapp01上生成一个密 钥对,包括一个公钥和一个私钥,并将公钥复制到所有的slave(jskhjfapp02) 上。b.然后当 master 通过SSH连接slave时, slave就会生成一个
8、随机数并用master的公钥对随机数进行加密,并发送给 master 。c.最后master收到加密数之后再用私钥解密,并将解密数回传给slave , slave确认解密数无误之后就允许master不输入密码进行连接了。具体步 骤(xieyt用户下执行)1 、 执行命令 ssh-keygen -t rsa 之后一路回 车,查看刚生成的无密码钥对:cd .ssh后执行ls -l2 、把 id_rsa.pub 追加到授权的key里面去。 执行命令 cat /.ssh/id_rsa.pub >>/.ssh/authorized_keys3 、修改权限: 执行 chmod 600 /.ss
9、h/authorized_keys4 、确保 cat /etc/ssh/sshd_config 中存在如下内容:RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys如需修改, 则在修改后执行重启SSH服务命令使其生效:service sshd restart5 、将公钥复制到slave 机器上:scp /.ssh/id_rsa.pub 1: / 然后输入yes ,最后 输入slave机器的密码6 、在slave机器上创建 .ssh 文件夹:mkdir /.
10、ssh 然后执行:chmod 700 /.ssh (若文件夹已存在则不需要创建)7 、追加到授权文件 authorized_keys 执行命令:cat /id_rsa.pub >> /.ssh/authorized_keys 然后执行 chmod 600 /.ssh/authorized_keys8 、重复第 4 步9 、 验证命令:在 master 机器上执行ssh 1 发现主机名由 jskhjfapp01变成 jskhjfapp02即成功(如下图),最后删除id_rsa.pub文件:rm -r id_rsa.pub效果如图:按照以上步骤分别配置所有sla
11、ve,要求每个都可以从master无密码登录。4 安装配置hadoop此处介绍的是完全分布式模式的安装。4.1 安装文件把下载文件ftp上传到/home/xieyt/source目录下到source目录下,解压安装包:tar xvf hadoop-2.3.0-cdh5.1.0.tar.gz然后把解压后的目录移到上一层目录,并改名为hadoop(名字随意,也可以带上版本号),mv hadoop-2.3.0-cdh5.1.0 ./hadoop4.2 环境变量配置环境变量(用root用户): vi /etc/profileexport HADOOP_DEV_HOME=/home/xieyt/hado
12、opexport PATH=$PATH:$HADOOP_DEV_HOME/binexport PATH=$PATH:$HADOOP_DEV_HOME/sbinexport HADOOP_MAPARED_HOME=$HADOOP_DEV_HOMEexport HADOOP_COMMON_HOME=$HADOOP_DEV_HOMEexport HADOOP_HDFS_HOME=$HADOOP_DEV_HOMEexport YARN_HOME=$HADOOP_DEV_HOMEexport HADOOP_CONF_DIR=$HADOOP_DEV_HOME/etc/hadoopexport HDFS_C
13、ONF_DIR=$HADOOP_DEV_HOME/etc/hadoopexport YARN_CONF_DIR=$HADOOP_DEV_HOME/etc/hadoop注:以上配置的修改,在datanode上也要配置一致。创建并配置hadoop-env.shvi /home/xieyt/hadoop/etc/hadoop/hadoop-env.sh 在末尾添加 export JAVA_HOME=/home/xieyt/jdk/jdk1.8.0_114.3 配置修改配置/home/xieyt/hadoop/etc/hadoop/core-site.xmlvi core-site.xml配置结果如下
14、:<configuration> <property> <name>hadoop.tmp.dir</name> <value>/home/xieyt/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name></name> <value>hdfs:/132
15、.228.25.30:9000</value> </property> <property> <name>xyuser.root.hosts</name> <value>0</value> </property> <property> <name>xyuser.root.groups</name> <value>*</value> </property></c
16、onfiguration>配置/home/xieyt/hadoop/etc/hadoop/slavesvi slaves添加slave的ip配置/home/xieyt/hadoop/etc/hadoop/hdfs-site.xmlvi hdfs-site.xml修改配置结果如下:<configuration><property> <name>dfs.replication</name> <value>1</value> <!由于我们只有一台机器,就配置成1,一般是配置成文件备份3份-></prope
17、rty> <property> <name>.dir</name> <value>file:/home/xieyt/hdfs/name</value> <final>true</final></property> <property> <name>service.id</name> <value>ns1</value></property> <p
18、roperty> <name>node.backup.address.ns1</name> <value>0:50100</value></property> <property> <name>node.backup.http-address.ns1</name> <value>0:50105</value></property> <property> <nam
19、e>services</name> <value>ns1</value></property> <property> <name>node.rpc-address.ns1</name> <value>0:9000</value></property><property> <name>node.rpc-address.ns2</name> &l
20、t;value>0:9000</value></property> <property> <name>node.http-address.ns1</name> <value>0:23001</value></property> <property> <name>node.http-address.ns2</name> <value>01:1300
21、1</value></property> <property> <name>dfs.dataname.data.dir</name> <value>file:/home/xieyt/hdfs/data</value> <final>true</final></property> <property> <name>node.secondary.http-address.ns1</name> <value>132.2
22、28.25.30:23002</value></property> <property> <name>node.secondary.http-address.ns2</name> <value>0:23002</value></property> <property> <name>node.secondary.http-address.ns1</name> <value>0
23、:23003</value></property> <property> <name>node.secondary.http-address.ns2</name> <value>0:23003</value></property></configuration>配置/home/xieyt/hadoop/etc/hadoop/yarn-site.xmlvi yarn-site.xml配置结果如下:<configuration><!-
24、 Site specific YARN configuration properties -><property> <name>yarn.resourcemanager.address</name> <value>0:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>0:18030&
25、lt;/value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>0:18088</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>0:18025</
26、value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>0:18141</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property
27、></configuration>同步代码到slaves我们这里示范的只要同步一台机器:11.同步配置代 码先在slaves的机器上也创建 mkdir -p /home/xieyt/source 部署hadoop代码,然后只要同步修改过的etc/hadoop下的配置文件即可2.同步 /etc/profile: scp -r /etc/profile roothadoop2:/etc/profile(也可以手工用ftp工具拖的土方法_比较可靠)3.同步 /etc/hosts scp -r /etc/hosts roothadoop2:/etc/hosts
28、其他机器以此操作库文件加载:本地库/home/xieyt/hadoop/lib/native下默认是空的,在64位机器下,需要特定按64位机器重新编译过的文件。把附件中的编译后的文件解压后放该目录下。Slaves服务器下也要放这些文件。4.4 启动hadoop启动的时候,观察有需要输入密码的地方,输入相应机器的密码。格式化集群:hadoop namenode -format -clusterid clustername启动hdfs, 开 启 hadoop dfs服 务:cd /home/xieyt/hadoop/sbinsh start-dfs.sh启动Yarn,开启yarn资源管理服务:sh
29、 start-yarn.sh启动httpfs,开启httpfs 服务,使得对外可以提高http 的restful接口服务:sh httpfs.sh start检查进程安装结果验证,在各台机器执行 jps 看进程是否都已经启动了,MASTER应该有4个进程,SLAVES应该有2个进程:Master:NameNodeBootstrapSecondaryNameNodeResourceManager如图:Slaves:DataNodeNodeManager如图:以上hadoop进程中,若有缺少的没有启动,则需要检查启动日志,排除导致异常的问题。若进程都起来了,基本说明安装成功。4.5 验证是否可用验
30、证是否可用的命令:查看hdfs根目录:hadoop fs -ls hdfs:/0:9000/ 创建一个hdfs下的目录:hadoop fs -mkdir hdfs:/0:9000/testfolder 复制一个文件到创建的hdfs目录下:hadoop fs -copyFromLocal ./xieyttest.txt hdfs:/0:9000/testfolder查看复制进去的文件:hadoop fs -ls hdfs:/0:9000/testfolder4.6 运行MapReduce 运行hado
31、op自带的MapReduce例子,以确保hadoop安装正确,并对hadoop有进一步的了解,操作步骤总结如下。a.先确定输入的hdfs下的input目录存在,若不存在,使用如下命令创建:hadoop fs -mkdir hdfs:/0:9000/input或hadoop fs -mkdir /inputb.创建需要处理的测试文件:cd /home/xieyt/datafilesecho 'aa bb cc dd aa aa aa bb cc dd dd aa ee aa aa aa bb' > xieyt_mr_test.txt如图:c.把文件导
32、入hdfs文件系统:执行命令:hadoop fs -copyFromLocal /home/xieyt/datafiles/xieyt_mr_test.txt /input如图:d.运行hadoop自带的wordcount的mapreduce程序进行字符统计:执行命令:cd /home/xieyt/hadoop/share/hadoop/mapreduce2hadoop jar hadoop-mapreduce-examples-2.3.0-cdh5.1.0.jar wordcount /input /output执行结果部分如图:其中 /output为不存在的目录,命令执行后回自动创建,存放
33、执行输出的结果文件。e.查看输出结果:执行命令:hadoop fs -ls /output结果如图:有两个文件,其中一个标识执行成功的文件 _SUCCESS,另外一个则为存放执行输出结果的文件;查看输出结果:执行命令:hadoop fs -cat /output/part-r-00000结果如下:aa 8bb 3cc 2dd 3ee 1结果如图:5 安装配置hiveHive只需要在hadoop的namenode节点上安装即可。Hive需要hadoop的支持,需要确保hadoop也安装成功。Hive默认使用内置的Derby数据库,也可配置mysql数据库,后续介绍和Hbase数据库整合,配置其它
34、数据库则修改hive-site.xml文件。5.1 安装上传安装源文件hive-0.12.0-cdh5.1.0.tar.gz到/home/xieyt/source如图, 解压: tar xvf hive-0.12.0-cdh5.1.0.tar.gz移到计划好的目录: mv hive-0.12.0-cdh5.1.0 ./最终位置如下:5.2 配置环境使用root用户修改 /etc/profile,添加如下两行:export HIVE_HOME=/home/xieyt/hive-0.12.0-cdh5.1.0export PATH=$PATH:$HIVE_HOME/bin备份hive-env.sh
35、.template并copy一份改名为hive-env.sh:cp hive-env.sh.template hive-env.sh增加如下环境变量设置(有些是现成的,只需要去掉前面的#):vi hive-env.sh5.3 验证安装输入命令: hive即启动hive 命令模式(CLI),当出现 hive>,则说明启动成功:创建表:在 hive> 下执行命令:create table test (key string);出现 OK,Time taken: xxx seconds说明命令执行成功,也说明hive安装成功。5.4 验证可用a.在 hive> 下执行命令,创建2个字
36、段的表,字段间用,隔开:create table xieyt_test(id int, name string ) row format delimited FIELDS TERMINATED BY ','b.准备加载到数据库的txt文件,并输入值:c.加载数据到数据库,执行命令:load data local inpath '/home/xieyt/datafiles/xieyt_hive_test.txt' overwrite into table xieyt_test;d.查看导入的数据结果:select * from xieyt_test;6 安装配置H
37、baseHBase的安装也有三种模式:单机模式、伪分布模式和完全分布式模式,这里只介绍完全分布模式。前提是Hadoop集群已经安装完毕,并能正确运行。因为只有一台机器,就安装配置一个HRegionServer了。Hbase需要每台集群机器上都安装,但是只要先在Master上安装后,然朝每台机器复制整个hbase目录即可。zookeeper集群:jskhjfapp01、jskhjfapp02Hbase集群:Master:jskhjfapp01,Regionserver:jskhjfapp026.1 安装上传文件到源文件目录,并解压,然后移动到设计好的目录下,如图:tar -xvf hbase-0
38、.98.1-cdh5.1.0.tar.gzmv hbase-0.98.1-cdh5.1.0 ./用root用户编辑 /etc/profile,增加如下配置,以便随时可以执行hbase命令:export HBASE_HOME=/home/xieyt/hbase-0.98.1-cdh5.1.0export PATH=$PATH:$HBASE_HOME/bin6.2 配置修改环境参数设置:vi /home/xieyt/hbase-0.98.1-cdh5.1.0/conf/hbase-env.sh设置java工作目录,hbase启动时候会去读取这个参数:export JAVA_HOME=/home/x
39、ieyt/jdk/jdk1.8.0_11设置hadoop的配置目录,目的是为了和hadoop关联(非lib,是配置):export HBASE_CLASSPATH=/home/xieyt/hadoop/etc/hadoop 设置是否使用内置zookeeper,true是, false否(需要单独安装zookeeper,后期补上单独安装zookeeper)export HBASE_MANAGES_ZK=true配置hbase-site.xml创建需要配置实用的目录:/home/xieyt/hbase-0.98.1-cdh5.1.0mkdir mydatamkdir tmp修改配置:vi hbas
40、e-site.xml修改配置如下:<configuration><property> <name>hbase.rootdir</name> <value>hdfs:/0:9000/hbase</value></property><property><name>hbase.master</name><value>hdfs:/0:60000</value></property><proper
41、ty> <name>hbase.cluster.distributed</name> <value>true</value> <description>是否是完全分布式</description></property><property> <name>hbase.tmp.dir</name> <value>/home/xieyt/hbase-0.98.1-cdh5.1.0/tmp</value><description>该目录要存在&
42、lt;/description></property><property> <name>hbase.zookeeper.quorum</name> <value>0,1</value> <description>zookeeper集群的server,(不能配置namenode所在的节点,待验证)</description></property><property> <name>hbase.zookeeper.p
43、roperty.clientPort</name> <value>2181</value> <description>zookeeper客户端端口</description></property><property> <name>perty.dataDir</name> <value>/home/xieyt/hbase-0.98.1-cdh5.1.0/mydata</value> <description>zook
44、eeper快照存储目录,要存在该目录</description></property></configuration>配置作为regionserver的服务器:vi /home/xieyt/hbase-0.98.1-cdh5.1.0/conf/regionservers这里添加1, 查看:通步安装HRegionServer上的所有服务器(这里其实就一台25.31机器,如果有多台,执行类型命令,修改ip即可):cd scp -r hbase-0.98.1-cdh5.1.0 1: /home/xieyt6.3 启停
45、hbase到目录/home/xieyt/hbase-0.98.1-cdh5.1.0/bin下执行启动脚本:sh start-hbase.sh过程中需要提示输入服务器密码,正常输入回车即可。使用jps命令,即可查看hbase进程,只要有HMaster和HQuorumPeer即说明进程已经启动正常,如图:RegionServer中执行jps命令,有HQuorumPeer和HRegionServer进程即可,如图:停止hbase数据库执行命令:sh stop-hbase.sh6.4 验证使用hbase启动hbase成功后,开始验证使用。进入hbase:cd /home/xieyt/hbase-0.9
46、8.1-cdh5.1.0/binsh hbase shell创建表:查看表:查看表结构:添加列族:删除列族:注意:1.ddl命令是区分大小写的,像ddl中的alter,create, drop, enable等都必需用小写。而中的属性名都必需用大写。2.alter、drop表之前必需在先禁用(disable)表,修改完后再启用表(enable)表,否则会报错。查看表是否在用或不在用: 删除表:查看表是否存在:插入数据:命令说明:put 'resume','laoxie','binfo:age','1981-4-4'put '
47、;resume','laoxie','binfo:sex','man'put 'resume','laoxie','binfo:mobile','#39;put 'resume','laoxie','edu:mschool','rq no.1'put 'resume','laoxie','edu:university','kmust'
48、put 'resume','laoxie','work:company','asiainfo'put 'resume','xiaohuihui','binfo:age','2014-2-16'put 'resume','xiaohuihui','binfo:sex','girl'put 'resume','xiaohuihui','binfo:mobile'
49、,'#39;put 'resume','xiaohuihui','edu:mschool','dyno.1'put 'resume','xiaohuihui','edu:university','nju'put 'resume','xiaohuihui','work:company','njgov'获取一行数据:获取一个行,一个列族的所有数据:获取一个行,一个列族中一个列的所有数据:更新记录(实质就是插入一条带有时间戳的记录,get查询时只显示最新时间的记录):全表扫数据(这里可以看出,这是基于列的数据库):删除指定行的指定列:删除整行记录:清空表:查看表的记录数:查看版本:7 Hive与Hbase的整合执行hive命令,启动hive,创建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冷库买卖拆除合同范本
- 剪力墙和伸缩缝施工方案
- 亚马逊推广服务合同范本
- 分包电气合同范本
- 第七章各具特色的地区教学设计2023-2024学年商务星球版地理七年级下册
- 中英文演出合同范本
- 农作物安全生产合同范本
- 加盟燕窝店合同范例
- 加工面店转让合同范本
- 出口篷布采购合同范本
- 2015-2022年青岛酒店管理职业技术学院高职单招语文/数学/英语笔试参考题库含答案解析
- 保险第三方理赔调查服务方案
- 我爱运动手抄报电子小报模板(附A4线稿)可打印涂色
- 新能源汽车结构原理与检修(彩色版)课件
- GB/T 9113-2010整体钢制管法兰
- GB/T 32722-2016土壤质量土壤样品长期和短期保存指南
- 2009数据结构英文试卷A及答案
- FZ/T 51010-2014纤维级聚对苯二甲酸1,3-丙二醇酯切片(PTT)
- 中等职业学校英语教学大纲词汇表本表共收词2200个左右含
- 三年级下册道德与法治《我是独特的》教学课件【新部编版】
- “互联网+”大学生创新创业基础课件
评论
0/150
提交评论