设为首页 收藏本站
查看: 1085|回复: 0

[经验分享] 第三章:Hadoop简介及配置Hadoop-1.2.1,hbase-0.94.13集群

[复制链接]

尚未签到

发表于 2015-7-14 07:59:31 | 显示全部楼层 |阅读模式
  前面给大家讲了怎么安装Hadoop,肯定会有人还是很迷茫,装完以后原来就是这个样子,但是怎么用,下面,先给大家讲下Hadoop简介:大致理解下就OK了
  hadoop是一个平台,提供了庞大的存储和并行计算的能力.
  Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。Hadoop的核心内容是HDFS和MpReduce.Hadoop项目结构有一下9中:
  
  Common:是Hadoop其他子项目提供支持的常用工具。
  Avro:是用于数据序列化的系统。
  MapReduce:是一种编程模型,用于大规模数据集(大于1TB)的并行运算。
  HDFS:是一个分布式文件系统。
  Chukwa:是开源的数据收集系统,用于监控和分析大型分布式系统的数据
  Hive:最早是由Facebook设计的,是一个建立在Hadoop基础之上的数据仓库。hive也可以提供查询但是它是非实时的,离线查询,hive不能提供实时查询,
           他需要hadoop的mapreduce计算,hive把普通的sql语句转换成mapreduce程序计算,让那些不懂java但是懂sql的人能够参与到hadoop中。hive将
           表的信息存放在metastore中,默认是dubey数据库中,真正的数据存放在hdfs中。
  HBase:hbase是hadoop的数据库,提供了毫秒级别的数据查询,是一个分布式,面向列的开源数据库.HBase做实时查询
  Pig:是一个对大型数据集进行分析,评估的平台。
  ZooKeeper:是一个分布式应用所设计的开源协调服务。
  Hadoop的API地址:http://hadoop.apache.org/docs/current/api/
  hadoop体系结构:先介绍HDFS的体系结构:
       HDFS采用主从(master/slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成,其中NameNode作为主服务器,管理文件系统
  的命名空间和客户端对文件的访问操作;集群中DataNode管理存储的数据。HDFS允许用户以文件形式存储数据。
  介绍MapReduce的体系结构:
       MapReduce是一种并行编程模式。MapReduce框架是由一个单独运行在主节点的jobtracker和运行在每个集群从节点的tasktracker共同组成的。主节点
  负责调度构成一个作业的所有任务,这些任务分布在不同的节点上,主节点监控它们的执行情况,并且重新执行之前失败的任务;从节点仅负责由主节点指派的任务。
  
  重点讲下:配置Hadoop集群,hbase集群
  一.首先,先搭建四台小集群,虚拟机的话,创建四个
  下面为这四台机器分别分配IP地址及相应的角色:集群有个特点,四台机子用户名最好一致,要不你就创建一个组,把这些用户放到组里面去,我这四台的用户名都是hadoop,主机名随意起
  192.168.0.10-----master(主机),nameNode,jobtracker----master(主机名)
  192.168.0.11-----slave1(从机),dataNode,tasktracker-----slave1(主机名)
  192.168.0.12-----slave2(从机),dataNode,tasktracker-----slave2(主机名)
  192.168.0.13-----slave3(从机),dataNode,tasktracker-----slave3(主机名)
如果用户名不一致,你就要创建一个用户组,把用户放到用户组下面:

sudo addgroup hadoop     创建hadoop用户组

sudo adduser -ingroup hadoop one  创建一个one用户,归到hadoop组下

二.由于用户是普通用户,没有root一些权限,所以修改hadoop用户权限

用root权限,修改sudoers文件

nano    /etc/sudoers   打开文件,修改hadoop用户权限,如果你创建的是one用户,就one ALL=(ALL:ALL) ALL

   DSC0000.jpg
三.要在这四台机子上均安装jdk,ssh,并配置好环境变量,四台机子都是这个操作::

  做好准备工作,下载jdk-7u3-linux-i586.tar 这个软件包
  1.sudo apt-get install openssh-server    下载SSH
  ssh     查看,代表安装成功
   DSC0001.png
  tar zxvf jdk-7u3-linux-i586.tar.gz 解压jdk
  2.sudo nano /etc/profile,在最下面加入这几句话,保存,这是配置java环境变量
DSC0002.jpg

验证jdk是否安装成功,敲命令

java -version     可以看到JDK版本信息,代表安装成功

DSC0003.jpg


3:配置SSH  免密码登陆,记住,这是在hadoop用户下执行的

ssh-keygen  -t  dsa  -P  ' '  -f  ~/.ssh/id_dsa


ssh-keygen代表生成密钥,-t代表指定生成的密钥类型,dsa代表密钥类型,-P代表提供密语,-f代表生成的密钥文件

DSC0004.jpg

4.cat  ~/.ssh/id_dsa.pub  >>  ~/.ssh/authorized_keys


ssh localhost   没有让你输入密码就代表ssh装成功了

DSC0005.jpg

或者 ls  .ssh/      看看有没有那几个文件

DSC0006.jpg


5.这一步只需要主机master操作,复制秘钥到从机,这样可以无密码访问从机

cd  .ssh

scp  authorized_keys  hadoop@slave1:/home/hadoop/.ssh/

scp  authorized_keys  hadoop@slave2:/home/hadoop/.ssh/

scp  authorized_keys  hadoop@slave3:/home/hadoop/.ssh/


chmod 644 authorized_keys  给秘钥赋予权限


ssh slave1   测试无密码访问主机slave1,第一次输入都要密码,以后就不需要了

DSC0007.jpg



四.在这四台机子上分别设置/etc/hosts及/etc/hostname

  hosts这个文件用于定于主机名与IP地址之间的对用关系
  sudo -i  获取最高权限
  nano /etc/hosts:
   DSC0008.jpg
  
   ctrl+o:保存,然后回车,ctrl+x:退出
  hostname 这个文件用于定义主机名的,
注意:主机是主机名,从机就是从机名,例如:slave1在这里就是slave1

   DSC0009.jpg
  然后你可以输入:ping slave1,看能不能ping通
  
  5,配置hadoop文件,这个配置只需要在主机master进行操作,从机的话,直接主机复制从机就OK了,但是从机会有一些改动,下面都有讲
  
  修改:conf/hadoop-env.sh,这个是配置jdk
   sudo nano   /home/hadoop/hadoop-1.1.2/conf/hadoop-env.sh
   DSC00010.jpg
  
  修改:conf/core-site.xml
  
  sudo nano   /home/one/hadoop-1.1.2/conf/core-site.xml
   DSC00011.jpg
  记住:tmp文件时需要手动创建的
  mkdir  /home/hadoop/tmp   创建tmp目录
  sudo  chmod  777  tmp/      给tmp目录赋予权限
  
  修改:conf/mapred-site.xml
  
  sudo nano   /home/one/hadoop-1.1.2/conf/mapred-site.xml
  
   DSC00012.jpg
  
  修改:/conf/hdfs-site.xml
  sudo nano   /home/one/hadoop-1.1.2/conf/hdfs-site.xml
   DSC00013.jpg 我们的集群有4个分机,所以rep4份
  
  配置主从节点
  配置conf/masters来设置主节点,注意:最好使用主机名,并且保证机器之间通过主机名可以互相访问:
  
  sudo nano   /home/one/hadoop-1.1.2/conf/masters
   DSC00014.jpg
  配置conf/slaves来设置从节点:
  
  sudo nano   /home/one/hadoop-1.1.2/conf/slaves
   DSC00015.jpg
  配置结束,如果不想分机在一个一个配置,可以把配置好的hadoop文件拷贝到其他集群的机器中,并且保证上面的配置对于其他机器而言正确
  命令是在hadoop用户下进行:这个只需要在主机运行就可以了
  scp  -r   /home/hadoop/hadoop-1.1.2  hadoop@slave1:/home/hadoop/
  scp  -r   /home/hadoop/hadoop-1.1.2  hadoop@slave2:/home/hadoop/
  scp  -r   /home/hadoop/hadoop-1.1.2  hadoop@slave3:/home/hadoop/
  

  6.虽然说复制到从机,但是从机有一些配置是不用要的,比如说配置主从节点
  sudo nano   /home/one/hadoop-1.1.2/conf/masters
  把master删除掉
  sudo nano   /home/one/hadoop-1.1.2/conf/slaves
  把slave1,slave2,slave3删除掉
  修改:/conf/hdfs-site.xml
  把dfs.permissions删除掉
  sudo nano   /home/one/hadoop-1.1.2/conf/hdfs-site.xml
   DSC00016.jpg
  
  7.hadoop集群启动与测试:这个只需要在主机上运行就可以了
  sudo -i  获取root权限
chown  -R hadoop:hadoop  /home/hadoop/hadoop-1.2.1      给hadoop用户赋予权限

  
  命令在hadoop用户下进行:
  su hadoop    切换hadoop用户
  cd   /home/hadoop/hadoop-1.1.2
  bin/hadoop  namenode  -format   格式化文件,格式化文件只能格式化一次,如果格式化多了,时间就会不同步,就会出错,这里有2个解决的方法
   第一个方法,就是删除tmp文件,就是创建的那个文件
  rm  -rf   tmp/  删除tmp
  mkdir  /home/hadoop/tmp   创建tmp目录
  sudo  chmod  777  tmp/      给tmp目录赋予权限,然后格式化,但是从机tmp跟主机的tmp会不同步,格式化以后,从机tmp都删除,主机复制从机
  scp  -r   /home/hadoop/tmp  hadoop@slave1:/home/hadoop/
  scp  -r   /home/hadoop/tmp   hadoop@slave1:/home/hadoop/
  scp  -r   /home/hadoop/tmp   hadoop@slave1:/home/hadoop/
  
  第二个方法,修改每个DataNode的namespaceID(位于/tmp/dfs/data/current/VERSION文件中)或修改NameNode的namespaceID(位于/tmp/dfs/name/current/VERSION文件中),
  使其一致,第2个方法会好些,因为一些文件都是存放在tmp里面,如果删除,数据也会没有
  bin/start-all.sh      启动所有的节点
   DSC00017.jpg
  
  bin/hadoop dfsadmin -report     查看集群的状态
   DSC00018.jpg
  
  测试:
  NameNode  http://192.168.0.10:50070
  JobTracker  http://192.168.0.10:50030
   DSC00019.jpg
  
DSC00020.jpg
DSC00021.jpg
  
  这样hadoop集群就配置完了,下面讲下配置hbase集群,都是在hadoop用户下操作,这个也是一样,主机搭建完以后,复制到从机上
  1.下载并解压hbase-0.94.13.tar.gz到/home/hadoop下面
  tar zxvf  hbase-0.94.13.tar.gz
  2.修改 hbase-env.sh ,hbase-site.xml,regionservers 这三个配置文件如下:
  修改 hbase-env.sh
  sudo  nano  /home/hadoop/hbase-0.94.13/conf/hbase-env.sh
   DSC00022.jpg
  修改 hbase-site.xml
  sudo  nano  /home/hadoop/hbase-0.94.13/conf/hbase-site.xml
   DSC00023.jpg
  
  修改 regionservers
  sudo  nano  /home/hadoop/hbase-0.94.13/conf/regionservers
   DSC00024.jpg
  
  复制hbase到从机
  scp  -r   /home/hadoop/hbase-0.94.13 hadoop@slave1:/home/hadoop/
  scp  -r   /home/hadoop/hbase-0.94.13 hadoop@slave2:/home/hadoop/
  scp  -r   /home/hadoop/hbase-0.94.13 hadoop@slave2:/home/hadoop/
  
  然后启动hbase,输入命令,记住:一定要先启动hadoop集群,才能启动hbase
  bin/start-hbase.sh
DSC00025.jpg
  
  我们也可以通过WEB页面来管理查看HBase数据库。
  HMaster:http://172.16.48.201:60010/master.jsp
DSC00026.jpg
  可以输入jps查看HMaster
DSC00027.jpg
  
  然后输入如下命令进入hbase的命令行管理界面:?quit  退出
  bin/hbase shell
DSC00028.jpg
  bin/stop-hbase.sh   退出hbase
  
DSC00029.jpg
  
  
  
  
  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-86361-1-1.html 上篇帖子: hadoop运行流程分析源代码级 下篇帖子: Hadoop的一些简单命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表