Linux虚拟机上安装Hadoop集群(初学)

测试已成功完成安装的版本

点击图文安装教程

hbase-1.2.6-bin.tar.gz
hadoop-2.7.5.tar.gz
ubuntu-16.04.3-server-amd64.ios
jdk-8u161-linux-x64.tar.gz
zookeeper-3.4.8.tar.gz

ps:如有需要请留言


写在前面的话

关于这篇博客
本教程并不是自己总结而写的,都是网站上的大牛们,一个个超详细的总结,在这里感谢大牛们对初学者的关照!!
这里贴出的博客没有排名之分,也没有好坏之分,而且只是冰山一角,摘出了几篇博主认为适合初学者的而已。
关于教程模式
如果已经有初步认识,而且有一定的linux基础的话,可以直接看最后博主贴出的安装命令,及操作,比较简单,但是是完整安装。
如果没有基础的话也没有关系,博主会推荐很多适合初学者的博客,一步一步地理解。


让我们开始进入hadoop的学习与安装

默认为完全分布式安装
实验条件是3台Vm的ubuntu-server虚拟机(可能博客里的linux是不一样的,不过没关系,都差不很多)
为什么不选择最新版本的hadoop呢?因为最新版本教程有点少,博主也是刚开始学习,所以选择了兼容性更高的低版本。


首先,我们从安装虚拟机开始学习:
http://blog.csdn.net/dream_an/article/details/52946840
如果可能的话,基本这样hadoop的安装就完成了,如果还是有很多问题的话请接着看。


http://blog.csdn.net/garfielder007/article/details/49865863
这里有更多的安装细节上的解释说明,还有很多安装时的坑。


http://blog.csdn.net/pucao_cug/article/details/71698903
http://www.linuxidc.com/Linux/2015-08/121397.htm
详细的图文讲解


http://blog.csdn.net/qinzhaokun/article/details/47804923
伪分布式安装


下面的三篇是针对最新版本3.0的安装过程
http://www.aboutyun.com/thread-23773-1-1.html
http://blog.csdn.net/u010499619/article/details/52886872
https://www.jianshu.com/p/1d99be0d2544


安装时遇到的错误

ps:博主曾遇到的典型错误

http://blog.csdn.net/coffeeandice/article/details/78879151
https://www.cnblogs.com/garfieldcgf/p/8119506.html
防坑笔记,很多典型错误解决方案


http://blog.csdn.net/kingjulien2/article/details/52268263
https://zhidao.baidu.com/question/2268432194882142228.html
hadoop官网下载的版本选择及区别


https://www.jianshu.com/p/a6bfe81247b6
Error: JAVA_HOME is not set and could not be found


https://stackoverflow.com/questions/46283634/localhost-error-cannot-set-priority-of-datanode-process-32156
ERROR: Cannot set priority of datanode process 32156


至此hadoop安装完毕


Hbase + zookeeper 的安装

博主安装的时候并没有按照一篇安装的,当时并没有搜到一篇适合的完整版安装,后来发现了
https://www.cnblogs.com/sqchen/p/8080952.html
里面有版本的制约关系,非常有价值


https://www.cnblogs.com/lzxlfly/p/7221890.html
博主是按照这一篇的hbase开始安装的,有一点是博主的hbase里面没有内含zookeeper,所以有一项的设置没有按照上面所说


http://blog.csdn.net/haihongazar/article/details/52623480
讲述了Hbase禁用自带ZooKeeper,使用已经安装的ZooKeeper


然后进入zookeeper的安装
https://www.imooc.com/article/details/id/20872
至此,安装完成


总结

可能是失败的太多了,后面的安装更加得心用手,就在一天的晚上一下全部安装完毕。

说一下安装过程中的自己认为重要的点:

  1. 用ssh免密连接只需要master与slave之间就可以,slave之间是不需要的。
  2. 配置文件的时候,文件夹是可以自己创建的。
  3. 3.0版本与2.x版本之间差异还是存在的,如果熟悉2.x安装时候3.0安装可能会更好安装
  4. centos版本的虚拟机自带root账户,虽然安装起来不需要权限的干扰,但是以后实际使用时还是需要有权限管理的。
  5. 命令的使用能加快安装的进程
  6. 理解配置文件的内容,其实还有意义的。
  7. 配置只需一个,剩下的复制就可以了!!!

指令集锦

初始配置

sudo apt install openssh-server

192.168.178.142 hadoop1
192.168.178.137 hadoop2
192.168.178.139 hadoop3

修改源

sudo vi /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

更新,下载编译工具

sudo apt update

sudo apt install vim

	ps -A | grep apt
	sudo kill -9 进程ID

# sudo apt-get upgrade

修改名字


sudo hostname hadoop1

修改时间

sudo tzselect

sudo cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

安装jdk,验证


tar -zxf jdk-8u161-linux-x64.tar.gz

sudo mv jdk1.8.0_161/ /opt/

sudo vim /etc/profile.d/jdk1.8.sh

export JAVA_HOME=/opt/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

source /etc/profile

java -version

ssh免密连接

sudo apt install ssh

sudo apt install rsync

ssh-keygen -t rsa 

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3

hadoop的环境变量配置

sudo vim /etc/profile.d/hadoop2.7.5.sh
#!/bin/sh
export HADOOP_HOME="/opt/hadoop-2.7.5"
export PATH="$HADOOP_HOME/bin:$PATH"
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

hadoop内部环境变量

sudo vim /etc/profile.d/hadoop-env.sh 
export JAVA_HOME=/opt/jdk1.8.0_161

从节点配置

slaves
hadoop2
hadoop3

文件配置

----------------------------------------------------------------

     ---------------core-site.xml---------------


        
        
                fs.defaultFS
                hdfs://Hadoop1:9000
        
        
        
         io.file.buffer.size
         131072
       
        
        
                hadoop.tmp.dir
                /home/zd/hadoop/tmp
        


----------------------------------------------------------------

     ---------------hdfs-site.xml---------------
     

    
      dfs.namenode.secondary.http-address
      hadoop1:50090
    
    
      dfs.replication
      2
    
    
      dfs.namenode.name.dir
      file:/home/zd/hadoop/hdfs/name
    
    
      dfs.datanode.data.dir
      file:/home/zd/hadoop/hdfs/data
    


----------------------------------------------------------------

     ---------------yarn-site.xml---------------
     




     
          yarn.nodemanager.aux-services
          mapreduce_shuffle
     
     
           yarn.resourcemanager.address
           hadoop1:8032
     
     
          yarn.resourcemanager.scheduler.address
          hadoop1:8030
      
     
         yarn.resourcemanager.resource-tracker.address
         hadoop1:8031
     
     
         yarn.resourcemanager.admin.address
         hadoop1:8033
     
     
         yarn.resourcemanager.webapp.address
         hadoop1:8088
     


----------------------------------------------------------------

     ---------------mapred-site.xml---------------
     

  
    mapreduce.framework.name
    yarn
  
  
          mapreduce.jobhistory.address
          hadoop1:10020
  
  
          mapreduce.jobhistory.address
          hadoop1:19888
  


----------------------------------------------------------------

复制到从节点


scp -r hadoop-2.7.5 hadoop2:

sudo mv hadoop-2.7.5 /opt/

初始化

cd /opt/hadoop-2.7.5
hdfs namenode -format

启动

cd /opt/hadoop-2.7.5/sbin
./start-all.sh

检测,网页检测

jps

http://192.168.178.142:8088/

配置hbase环境变量

sudo vim /etc/profile.d/hbase1.2.6.sh
export HBASE_HOME=/opt/hbase-1.2.6 
export PATH=$HBASE_HOME/bin:$PATH

内部jdk配置

vim /opt/hbase-1.2.6/conf/hbase-env.sh
修改# export JAVA_HOME=/opt/jdk1.8.0_161

配置文件

----------------------------------------------------------------

     ---------------hbase-site.xml---------------


	 
		hbase.rootdir 
		
		hdfs://Hadoop1:9000/zd/hbase/hbase_db
		
	 
	 
		hbase.cluster.distributed 
		
		true 
	 

这里与上面的教程不一样

cd /opt/hbase-1.2.6/conf
vim regionservers
去掉默认的localhost,加入hadoop2、hadoop3

复制到从节点

scp -r hbase-1.2.6 hadoop2:

zookeeper的环境变量

sudo vim /etc/profile.d/zookeeper-3.4.8.sh
export ZOOKEEPER=/opt/zookeeper-3.4.8 
export PATH=$PATH:$ZOOKEEPER/bin

source /etc/profile

配置

cp zoo_sample.cfg zoo.cfg
修改:
dataDir=/opt/zookeeper-3.4.8/data
添加:
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888

发到从节点

scp -r zookeeper-3.4.8 hadoop2:

配置

三台机器下面data目录里面各自建一个myid的文件

cd /usr/tools/zookeeper-3.4.8/data
vi myid
然后里面填上相应的数字
master是server.1,myid里面填1
slaver1是server.2,myid里面填2
slaver2是server.3,myid里面填3

三台分别启动zookeeper
zkServer.sh start

然后,每台机器上查看状态:
zkServer.sh status

结果如下正常:
ZooKeeper JMX enabled by default
Using config: /usr/tools/zookeeper-3.4.8/bin/../conf/zoo.cfg
Mode: follower

使用jps查看:
jps

结果
QuorumPeerMain

完成,感谢阅读。

你可能感兴趣的:(大数据)