Hadoop 集群 搭建

一、安装hadoop 在 三个节点下 ,在本实验中采用ubuntu14.04虚拟机

1、  配置IP、DNS(三台机器都要)

sudo vim /etc/network/interfaces

内容为:

auto eth0

ifaceeth0 inet static

address 10.49.24.115

netmask255.255.0.0

gateway10.49.250.250

dns-nameserver 223.5.5.5 8.8.8.8

注:

自动获取IP:dhclienteth0

查看网关: ip route show

查看dns: cat/etc/resolv.conf

网络重启:sudo/etc/init.d/networking restart

学校dns:202.102.224.68 222.139.215.195

2、  设置主机名(三台机器都要,配置后需重启sudo reboot)

sudo vim /etc/hostname

master

另外两台配置为:slave1,slave2

重启后用hostname可查看

3、  配置ip地址与主机名映射(三台机器都要)

sudo vim /etc/hosts

内容为:

127.0.0.1       localhost

#127.0.1.1      ubuntu

10.49.24.115master

10.49.24.116slave1

10.49.24.117 slave2

4、  设置SSH免密钥登录

(1)安装ssh服务:sudo apt-get install openssh-server

使用 ps -e | grep ssh如果还没启动,需要/etc/init.d/ssh start

如果显示sshd则说明已启动成功。

(2)SSH免密钥登录

Master机器:

ssh-keygen -t rsa一路回车下去

cd

ll

cd .ssh

ll

cat id_rsa.pub >>authorized_keys

chmod 600 authorized_keys

  slave1:

  slave2: 都做:

ssh-keygen -t rsa一路回车下去

cd  ll

master: 

scp authorized_keys slave1:~/.ssh

scp authorized_keys slave2:~/.ssh

最后通过:ssh slave1 

Ssh slave2 实现免密钥登录

5、  装JDK

(1)规划安装路径

/hadoop放安装好的文件夹

/software 放安装包

/hadoop/tmp存放临时文件

sudomkdir /hadoop

sudomkdir /software

sudomkdir /hadoop/tmp

(2)上传或COPY安装文件

可以使用Xftp

或者在XShell中apt-get install lrzsz

进入/software 用rz命令上传文件到此目录中

上传jdk hadoop hbase zookeeper

(3)解压

cd /software

sudo tar -zxvf jdk-7u51-linux-x64.tar.gz -C /hadoop

(4)sudo mv jdk1.7.0_51/ java

(5)配置环境变量

vim ~/.bashrc

内容如下:

export JAVA_HOME=/hadoop/java

export PATH=$PATH:$JAVA_HOME/bin

然后使用source ~/.bashrc使配置文件生效

java –version查看java版本

(6)分发jdk

scp -r javaslave1:/hadoop

scp .bashrcslave1:~/

scp -r javaslave2:/hadoop

scp .bashrcslave2:~/

另外:slave1,slave2需要source~/.bashrc一下

6、  Hadoop环境搭建

(1)      安装Hadoop,解压

tar -zxvf hadoop-2.9.0.tar.gz  -C /hadoop

(2)      mv hadoop-2.9.0/ hadoop

(3)      建立相应的文件夹:

mkdir /hadoop/hadoop/hdfs

mkdir /hadoop/hadoop/tmp

mkdir /hadoop/hadoop/namenode

(4)      配置环境变量

vim ~/.bashrc

export PATH=$PATH:/hadoop/hadoop/bin:/hadoop/hadoop/sbin

source ~/.bashrc

在任何目录输入:hadoop version

(5)      修改配置文件

在/hadoop/hadoop/etc/hadoop目录中配置:

①vim hadoop-env.sh中:export JAVA_HOME=/hadoop/java

②vim core-site.xml中:

<property>

<name>hadoop.tmp.dir</name>

<value>file:/hadoop/hadoop/tmp</value>

<description>Abasefor other temporary directories.</description>

</property>

 

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

         ③vim hdfs-site.xml中:

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

 

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/hadoop/hadoop/namenode</value>

</property>

 

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/hadoop/hadoop/hdfs</value>

</property>

         ④cp  mapred-site.xml.templatemapred-site.xml

           vim mapred-site.xml中:

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

         ⑤vim yarn-site.xml中:

 

<property>  

        <name>yarn.nodemanager.aux-services</name>  

        <value>mapreduce_shuffle</value>  

    </property>  

  

    <property>  

      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  

        <value>org.apache.hadoop.mapred.ShuffleHandler</value>  

    </property>  

  

    <property>  

        <name>yarn.resourcemanager.admin.address</name>  

        <value>master:8033</value>  

    </property>  

  

    <property>  

        <name>yarn.resourcemanager.address</name>  

        <value>master:8032</value>  

    </property>  

  

    <property>  

        <name>yarn.resourcemanager.resource-tracker.address</name>  

        <value>master:8031</value>  

    </property>  

  

    <property>  

        <name>yarn.resourcemanager.scheduler.address</name>  

        <value>master:8030</value>  

    </property>  

         ⑥ vim slaves中:

            slave1

            slave2

(6)      分发给从结点:

       scp -r /hadoop/hadoop/slave1:/hadoop

scp -r/hadoop/hadoop/ slave2:/hadoop

(7)      格式化:(master)

hadoop namenode-format

(8)      启动Hadoop:

        start-all.sh  或者start-dfs.sh  start-yarn.sh

(9)      查看进程:jps

master:   

5620 NameNode

5851 SecondaryNameNode

6275 Jps

6005 ResourceManager

slave1 slave2:

4615 Jps

4313 DataNode

4467 NodeManager

         查看:hadoop fs -ls /

         或在http://master:50070

         另:hadoop dfsadmin -report可查看集群状态命令

(10)关闭Hadoop:

      stop-all.sh

二、安装Zookeeper

1、解压tar -zxvfzookeeper-3.4.6.tar.gz -C /hadoop

2、mv zookeeper-3.4.6/zookeeper

3、修改配置文件

     cdzookeeper/conf

(1)      修改zoo_sample.cfg为zoo.cfg

cp zoo_sample.cfg zoo.cfg

(2)      修改zoo.cfg

vim zoo.cfg中修改:

    dataDir=/hadoop/zookeeper/data

    dataLogDir=/hadoop/zookeeper/log

 

   clientPort=2181

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

(3)      mkdir data(先cd..)

mkdir log

(4)      cd data后vim myid在该文件中输入1

(5)      同步到slave1,slave2(到hadoop目录下)

scp -r zookeeper/ slave1:/hadoop

scp -r zookeeper/ slave2:/hadoop

(6)      同步后修改各个节点的myid

cd /hadoop/zookeeper/data/

vim myid 2

vim myid 3

(7)      分别启动各个节点的服务器进程:

cd /hadoop/zookeeper

bin/zkServer.sh start

(8)      检查是否成功(三个节点):

bin/zkServer.sh status 其中有一个leader 其余都是follower

或在bin目录下执行:./zkCli.sh -server master:2181

ls /

quit

(9)      停止zookeeper(三个结点)

Bin/zkServer.sh stop

三、安装HBase

http://hbase.apache.org/

确保HDFS处于启动状态

1、在主节点解压HBASE(进入/software目录下)

   tar-zxvf hbase-1.2.6-bin.tar.gz -C /hadoop/

   mvhbase-1.2.6/ hbase

2、修改配置文件  cd /hadoop/hbase/conf

  (1)修改HBase的环境变量配置文件hbase-env.sh

      export JAVA_HOME=/hadoop/java

      export HBASE_CLASSPATH=/hadoop/hadoop

 

      export HBASE_MANAGES_ZK=false

注:一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群,即Hbase默认自带一个zookeep集群。这个集群会随着Hbase的启动而启动。而在实际的商业项目中通常自己管理一个zookeeper集群更便于优化配置提高集群工作效率,但需要配置Hbase。需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的,作用是让Hbase启动的时候同时也启动zookeeper.在本实验中,我们采用独立运行zookeeper集群的方式,故将其属性值改为false.

  (2)修改hbase-site.xml

<property>

<name>hbase.rootdir</name>

<value>hdfs://master:9000/hbase</value>

</property>

 

<property>

<name>hbase.master</name>

<value>hdfs://master:60000</value>

</property>

 

<property>

<name>hbase.tmp.dir</name>

<value>file:/hadoop/hbase/tmp</value>

</property>

 

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

 

<property>

<name>hbase.zookeeper.quorum</name>

<value>master,slave1,slave2</value>

</property>

 

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/hadoop/zookeeper/data</value>

</property>

 

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

 

<property>

 <name>hbase.master.info.port</name>

 <value>60010</value>

 </property>

 

<property>

   <name>hbase.regionserver.info.port</name>

  <value>60030</value>

 </property>

 

要想运行完全分布式模式,加一个属性 hbase.cluster.distributed 设置为 true 然后把hbase.rootdir 设置为HDFS的NameNode的位置

hbase.rootdir:这个目录是region server的共享目录,用来持久化Hbase。URL需要是'完全正确'的,还要包含文件系统的scheme

hbase.cluster.distributed :Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。

在hbase-site.xml配置zookeeper:当Hbase管理zookeeper的时候,你可以通过修改zoo.cfg来配置zookeeper,对于zookeepr的配置,你至少要在hbase-site.xml中列出zookeepr的ensemble servers,具体的字段是 hbase.zookeeper.quorum.在这里列出Zookeeper集群的地址列表,用逗号分割。

hbase.zookeeper.property.clientPort:ZooKeeper的zoo.conf中的配置,客户端连接的端口。

hbase.zookeeper.property.dataDir:ZooKeeper的zoo.conf中的配置。

对于独立的Zookeeper,要指明Zookeeper的host和端口。需要在hbase-site.xml中设置。

(3)修改regionservers

     slave1

     slave2

  在这里列出了希望运行的全部HRegionServer,一行写一个host (就像Hadoop里面的 slaves 一样). 列在这里的server会随着集群的启动而启动,集群的停止而停止。

3、同步两个从节点(到hadoop目录下)

   scp-r hbase slave1:/hadoop

   scp-r hbase slave2:/hadoop

4、启动hbase(到hbase的bin目录下)

   ./start-hbase.sh

5、检查是否启动成功

jps

master中有HMaster

slave中有HRegionServer

6、利用客户端连接到hbase

   ./hbaseshell

7、玩转hbase,未来的主要工作

create 'test','cf1'

list

put 'test','row1','cf1:a','value1'

put 'test','row1','cf1:b','value2'

scan 'test'

disable 'test'

drop 'test'

list

exit

 

 

 

注:关闭与启动Hadoop、zookeeper、hbase

1.停掉hbase. 在bin目录下(master结点)

./stop-hbase.sh

 

2.各个结点分别停掉zookeeper. 在bin目录下

./zkServer.sh stop

 

3.停掉hadoop. 在sbin目录下(master结点)

./stop-all.sh

 

启动顺序与关闭顺序正好相反。

1.启动hadoop.在sbin目录下

./start-all.sh

master:jps中有ResourceManagerNameNode  SecondaryNameNode

slave:jps中有DataNodeNodeManager

或master:50070

 master:18088

2.各个结点分别启动zookeeper. 在bin目录下

./zkServer.sh start

.检查安装是否成功

./zkServer.sh status

bin/目标下,执行./zkCli.sh-server master:2181

ls /

quit

3.启动hbase. 在bin目录下

./start-hbase.sh

检查是否启动成功

jps

master中有HMaster

slave中有HRegionServer

或者master:60010

 

利用客户端连接到hbase

 ./hbase shell

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值