centos6.5 hadoop2.6.0

>>>>>>>>>>>>>>>>>>>>>>>>>>>>hadoop

1、准备环境 

       centos6.5 版本。

  1)安装中文输入法:

       1、需要root权限,所以要用root登录 ,或su root

        2、yum install "@Chinese Support"

   2)安装ssh或者vsftp

       使用chkconfig --list来查看是否装有vsftpd服务;

       使用yum命令直接安装:  yum install vsftpd 

       查看与管理ftp服务:

       启动ftp服务:service vsftpd start

        查看ftp服务状态:service vsftpd status

        重启ftp服务:service vsftpd restart

        关闭ftp服务:service vsftpd stop

    3)jdk安装 

  

这里可以在一台电脑上配置,然后拷贝到其他电脑

scp -r /usr/java/  zjenterprise02:/usr/java/

 

 

2、修改主机名 

  [root@zjenterprise02]# vi /etc/sysconfig/network

    NETWORKING=yes

    HOSTNAME=zjenterprise02

3、修改IP

 vim /etc/sysconfig/network-scripts/ifcfg-em1

修改IPADDR=192.168.3.132

5、配置/ect/hosts,服务器的配置一样

vim /etc/hosts

192.168.3.132

zjenterprise02

Jdk

Hadoop

hbase

Namenode

DFSZKFailoverController

Hamster

192.168.3.134

zjenterprise03

Jdk

Hadoop

hbase

Namenode

DFSZKFailoverController

Hamster

192.168.3.136

zjenterprise04

Jdk

Hadoop

resourceManager

192.168.3.138

zjenterprise05

Jdk

Hadoop

Zookeeper

hbase

Datanode

nodeManager

JournalNode

QuorumPeerMain

HRegionServer

192.168.3.140

zjenterprise06

Jdk

Hadoop

Zookeeper

Hbase

Datanode

nodeManager

JournalNode

QuorumPeerMain

HRegionServer

6、 关闭防火墙

 service iptables stop

chkconfig iptables off


7、创建用户(使用root用户创建后来发现Browse the filesystem 报错,后来查文档,建议使用新建的用户)

useradd  hadoop 

passwd hadoop

输入密码,确认

8、ssh无密码登录

ssh-keygen –t rsa //产生公钥和私钥

拷贝公钥到其他电脑(zjenterprise03为主机名)

ssh-copy-id -i zjenterprise03

 

1、在主服务器master下生成密钥

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

2、将密钥放在 ~/.ssh/authorized_keys

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

3、对生成的文件authorized_keys授权

  chmod 600 ~/.ssh/authorized_keys

4、编辑sshd_config文件,将下面三列#去掉

 vim /etc/ssh/sshd_config

 RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile     .ssh/authorized_keys

5、重启sshd 服务(可省略)

   service  sshd  restart

6、验证无验证登陆

ssh localhost

7  配置zjenterprise02无密钥登陆zjenterprise03(以此可以配置master无密钥登陆slaveX

注释:root为root用户,zjenterprise02为主机名

 

[root@zjenterprise02 ~]# scp -r root@zjenterprise02 :/root/.ssh/id_dsa.pub /root/.ssh/slaver.pub

 [root@zjenterprise02 ~]# cat ~/.ssh/slaver.pub >> ~/.ssh/authorized_keys

chmod 600~/.ssh/authorized_keys

vim /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile     .ssh/authorized_keys

service sshd restart

 

6、HADOOP的下载和环境的配置

http://mirror.esocc.com/apache/hadoop/common/hadoop-2.6.0/

[   ] hadoop-2.6.0.tar.gz 

hadoop环境变量的配置:

vi/etc/profile

在文件的最下面添加

BASE_HOME=/myhome/env

export HADOOP_HOME=$BASE_HOME/blocks/hadoop

export PAHT=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export HADOOP_LOG_DIR=$HADOOP_HOME/logs

export YARN_LOG_DIR=$HADOOP_LOG_DIR

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

注:在64位操作系统上需要加入一下红色部分的配置信息

网上看到的另一种解决办法:

在使用./sbin/start-dfs.sh或./sbin/start-all.sh启动时会报出这样如下警告:

Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /usr/local/hadoop-2.2.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.

....

Java: ssh: Could not resolve hostname Java: Name or service not known

HotSpot(TM): ssh: Could not resolve hostname HotSpot(TM): Name or service not known

64-Bit: ssh: Could not resolve hostname 64-Bit: Name or service not known

....

这个问题的错误原因会发生在64位的操作系统上,原因是从官方下载的hadoop使用的本地库文件(例如lib/native/libhadoop.so.1.0.0)都是基于32位编译的,运行在64位系统上就会出现上述错误。

解决方法之一是在64位系统上重新编译hadoop,另一种方法是在hadoop-env.sh和yarn-env.sh中添加如下两行: 

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native  

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"  

注:/myhome/env/blocks/hadoop2.6.0/hadoop-2.6.0为自定义的下载hadoop文件的解压路径

7、修改hadoop的配置文件hadoop2.6.0/etc/hadoop

    1、修改hadoop-env.sh 、yarn-env.sh 确保hadoop运行所需要的java环境

    # The java implementation to use.

    export JAVA_HOME=/usr/java/jdk1.8.0_20

    2、修改core-site.xml文件  定义文件系统的配置

<configuration>

 <property>  

    <name>fs.default.name</name>  

        <value>hdfs://zjenterprise02:9000/</value>  

 </property>  

 <property>

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

         <value>/myhome/env/blocks/hadoop-2.6.0/tmp</value>

  </property>  

 </configuration>

  3、修改hadfs-site.xml  定义名称节点和数据节点

  <configuration>

<property>  

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

        <value>/myhome/env/blocks/conf/hadoop/hdf/data</value>  

        <final>true</final>  

   </property>  

     <property>  

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

       <value>/myhome/env/blocks/conf/hadoop/hdf/name</value>  

       <final>true</final>  

   </property>  

   <property>  

        <name>dfs.replication</name>  

        <value>2</value>  

   </property>

 <property>  

            <name>dfs.permissions</name>  

            <value>false</value>  

    </property> 

</configuration>

4、修改mapred-site.xml   Configurations for MapReduce Applications

   <property>  

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

        <value>yarn</value>  

    </property>  

    <property>  

        <name>mapreduce.jobhistory.address</name>  

        <value>zjenterprise02:10020</value>  

    </property>  

  <property>  

        <name>mapreduce.jobhistory.webapp.address</name>  

        <value>zjenterprise02:19888</value>  

    </property>  

  5、修改yarn-site.xml文件    

     该文件主要用于:

     1、Configurations for ResourceManager and NodeManager:

     2、Configurations for ResourceManager:

     3、Configurations for NodeManager:

    4、Configurations for History Server (Needs to be moved elsewhere):

    <property>  

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

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

    </property>  

 <property>  

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

        <value>zjenterprise02:8032</value>  

    </property>  

    <property>  

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

        <value>zjenterprise02:8030</value>  

    </property>  

    <property>  

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

        <value>zjenterprise02:8031</value>  

    </property>  

    <property>  

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

        <value>zjenterprise02:8033</value>  

    </property>  

      <property>  

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

        <value>zjenterprise02:8088</value>  

    </property> 

 

8、创建第7步配置文件中多出的文件夹

   data  tmp  name  log    mkdir -r  /myhome/env/blocks/conf/hadoop/hdf/data 等

9、为这些文件夹赋权限 比较关键 不然文件生成的时候无文件创建、写权限

   su - root

  chown -R hadoop:hadoop /myhome/env/blocks/ (不明白的可以查看chown命令)

    或者切换到hadoop用户下 通过chmod -R 777 data 赋权限

10、将配置好的hadoop分别拷贝到 zjenterprise03zjenterprise04主机上

    scp -r  /myhome/env/blocks/hadoop    hadoop@zjenterprise03:/myhome/env/blocks/hadoop/

     scp -r  /myhome/env/blocks/hadoop    hadoop@zjenterprise04:/myhome/env/blocks/hadoop/

11、hadoop namenode的初始化

      如果 hadoop环境变量配置没问题直接使用

      hdfs namenode -format 

       hadoop command not found 解决办法:

        echo $PATH 

        发现hadoop的环境变量是:/home/hadoop/bin 而不是我们配置的环境变量,我们需要把hadoop-2.6.0包下的bin、sbin文件夹拷贝到/home/hadoop/下,再次echo $PATH,发现可以了。

12、关闭防火墙  三台服务器的防火墙都需要关闭

查看iptables状态:

service iptables status

iptables开机自动启动: 

开启: chkconfig iptables on
关闭: chkconfig iptables off

iptables关闭服务:

开启: service iptables start
关闭: service iptables stop

13、启动hadoop

   start-all.sh

    关闭hadoop

     stop-all.sh

14、查看启动的节点进程

         jps

15、查看启动后的服务信息

master中应该有ResourceManager服务,slave中应该有nodemanager服务

查看集群状态:./bin/hdfs dfsadmin –report

查看文件块组成:  ./bin/hdfsfsck / -files -blocks

查看各节点状态:    http://master:50070

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>安装zookeeper

解压 tar –zxvf zookeeper-3.5.0.tar.gz

1.修改配置文件conf/ zoo_sample.cfg  zoo.cfg

mv zoo_sample.cfg zoo.cfg

打开修改内容:

dataDir=/home/gj/zookeeper-3.5.0/data  //数据目录,可随意定义

最后面添加:

server.1=zjenterprise02:2888:3888

server.2=zjenterprise03:2888:3888

server.3=zjenterprise04:2888:3888

 

// server.X=A:B:C

其中X是一个数字, 表示这是第几号server.

A是该server所在的IP地址.

B配置该server和集群中的leader交换消息所使用的端口.

C配置选举leader时所使用的端口. 

注意这里需要创建data文件夹

进入data文件夹创建文件myid  内容为1

1表示这是第几号server, server.X=A:B:C中的X对应

 

2.将配置到的zookeeper拷贝到其他电脑(zjenterprise03,zjenterprise04)上

使用 scp -r 命令

分别修改 myid文件内容为2,3

 

1.  启动三个节点的 bin目录下的./zkServer.sh start

也可以将zookeeper 配置到环境变量里面

 

 

启动hadoop  zookeeper(已配置到环境变量里面)

1.先启动zookeeperzjenterprise05,zjenterprise06

  zkServer.sh start

 查看状态zkServer.sh status(会发现有一个leader,两个follower

2. 启动journalnode(zjenterprise02上启动)

   hadoop-daemons.sh start journalnode

3.格式化HDFS(zjenterprise02上启动)

hadoop namenode -format

此时会在hadoop目录里面产生tmp文件夹,将这个文件夹拷贝到zjenterprise03

3.       格式化ZK(zjenterprise02上启动)

hdfs zkfc -formatZK

4.       启动hadoop(zjenterprise02上启动)

start-all.sh

此时可能在h3上的resourceManager没有启动,可以进入h3启动start-yarn.sh

这时就可以通过web查看hadoop集群的各个状态,也可以用jps 命令查看进程

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>hbase 集群配置

 

1.conf/hbase-env.sh

JAVA_HOME=/usr/java/jdk1.8.0_20

export HBASE_MANAGES_ZK=false 

使用独立的ZooKeeper时需要修改HBASE_MANAGES_ZK值为false,为不使用默认ZooKeeper实例。

 

2. conf/hbase-site.xml

 

<property>
 <name>hbase.rootdir</name>
 <value>hdfs://zjenterprise02:9000/hbase</value>
</property>
<property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>
zjenterprise02:60000</value>
</property>
 <property>
 <name>hbase.master.port</name>
 <value>60000</value>
 <description>The port master should bind to.</description>
 </property>
 
 <property>
   <name>hbase.zookeeper.quorum</name>
   <value>
zjenterprise05,zjenterprise06</value>
 </property>

 

3.conf/ regionservers

zjenterprise05

zjenterprise06

启动hbase

zjenterprise01

start-hbase.sh

zjenterprise02

start-hbase.sh

 

这是可以通过web查看hbase的状态  ,会发现像namenode一样有一个Active 状态hmasterStandby 状态hmaster

猜你喜欢

转载自ssydxa219.iteye.com/blog/2167234