centos下hadoop集群搭建详细过程

Hadoop集群搭建全过程

参考操作:课本刘鹏《云计算》,刘鹏《实战hadoop》,上网google

 

需要软件:VMware-workstation-9.0.exe;CentOS-6.4-i386-bin-DVD1.iso(3.51G,里面的插件比较全,VMtools都不用装了,可以和windows直接设置共享文件夹,鼠标也可以直接进出,还可以跨系统直接复制);

一、      安装centos系统

按照常规安装,配置如下:普通用户wzw,密码123456;超级用户root,密码123456;我安装集群使用的用户是grid,密码grid


1.1、安装完成后,界面下调节分辨率:perfercene——>display可以设置分辨率;

有3种方法设置网络连接方式:

1屏幕右下角有个网络连接,双击即可设置bridged或者NAT方式,connect 等选项打勾;

2 在vmware下,VM——>setting——>network adapter设置 

3 直接在安装linux的时候有选择网络连接方式的选项。

说明:bridged桥接方式,和真实机下的ip地址以及子网掩码,DNS的配置都是一致的。

1.2、配置ip:打开终端,进行以下操作:

(这是在root用户下登陆的)

$cat/etc/sysconfig/network-scripts/ifcfg-eth0

$vi/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

BOOTPROTO=static

ONBOOT="yes"

TYPE="Ethernet"

HWADDR=00:0C:29:AC:DE:B0

IPADDR=10.22.73.23

GATEWAY=10.22.73.1

DNS1=210.33.16.2

$service networkrestart

$ifconfig

$ifconfig -a

解释:

上面就是ip配置,在我的实验室的环境下的ip设置保持一致。

第一行是网卡名字

第二行是设置BOOTPROTO=static (默认是dhcp),手动配置的ip可以重启后生效

HWADDR 是本机的物理地址,可以用命令ifconfig–a查看,要求和本机一致

注意是ifconfig,而不是ipconfig

最后三行诗IP,子网掩码和DNS

重启后配置生效!

然后和windows机器ping一下,看是否能够ping通

$ping 10.22.73.21

10.22.73.21是我的win7物理机的IP地址

1.3、虚拟机下的linux和真实机win7共享文件夹

  在win7的E盘下,我建立了文件夹wshare1

  VMware下VM——>setting——>options——>sharefloders下设置找到E:\wshare1,对一些选项打上勾,applying即可。

进入linux终端后,可以在/mnt/hdfs/whare1/下看到我的win7下的文件,并且可以拷贝到linux下,例如拷贝到/usr/java(这个java文件夹是你自己建立的$mkdir java

$cp /mnt/hdfs/whare1/test  /usr/java

 

二、      安装SSH和java软件(三台机器下都分别安装最好,

安装的时候,为了是界面清晰,可以使用putty小软件连接这3台机器)

2.1、SSH无密码验证配置 
用root或者普通用户wzw登录都行,需要使用哪个用户无密码验证,就使用哪个用户登录。在这个用户的root目录下执行如下命令:

$ssh-keygen -t rsa 

通过以上命令将在/root/.ssh/ 目录下生成id_rsa私钥和id_rsa.pub公钥。

$cd  /root/.ssh

$ls

若是.ssh目录下有authorized_keys,则执行

 $cat  id_rsa.pub > authorized_keys 

若是.ssh目录下没有authorized_keys,则执行

$cp id_rsa.pub  authorized_keys 

一般是拷贝
配置完毕,可通过:ssh 本机IP    测试是否需要密码登录。 

$ ssh 10.22.73.23 可以实现用SSH连接并且不需要出入密码。

注意:10.22.73.23是本linux系统的ip地址,也可以使其他机器的IP,执行这个命令相当于登到了其他机器上,执行exit后才能回到原先的用户下!注意啊

另外注意拷贝或者追加的是id_rsa.pub而不是id_rsa,名字一定是authorized_keys 

测试过程如下:

$ ssh 10.22.73.23

Are you sure you want to continue connecting (yes/no)?yes

$ exit               //要是不退出,就是登录到这个IP对应的机器了

$ ssh 10.22.73.23     //第二次再登陆,就不需要输入yes了,便是成功了

看!可以无密码登录了。要是不成功,就把.ssh 删除(rm –rf .ssh),重新配置。

2.2、 JDK安装及Java环境变量的配置 (注意对应自己的安装目录和版本)

JDK安装 ,首先在JDK官网下载 JDK 安装包 的linux版本
root 用户登陆,新建文件夹 /usr/java ,把jdk安装包(jdk-6u13-linux-i586.bin)放到/usr/java

a)      

$cd  /usr

$mkdir  java

b)    下载的jdk-6u13-linux-i586.bin,通过文件夹共享,复制到目录/usr/java 下,在命令行进入该目录,执行命令“./ jdk-6u43-linux-i586.bin”

有时候需要增加可执行权限,一般情况下不需要下面的操作。

[root@localhost java]#chmod a+xjdk-6u38-linux-x64.bin

[root@localhost java]# ls-lrt

total 70376

-rwxr-xr-x. 1 root root72058033 Jan 2907:21 jdk-6u38-linux-x64.bin

c)      

$cp  /mnt/hdfs/wshare1/ jdk-6u43-linux-i586.bin  /usr/java

$cd  /usr/java

 

$./ jdk-6u43-linux-i586.bin

命令运行完毕,将在目录下生成文件夹jdk1.6.0_43,安装完毕。 

d)         java环境变量配置 

root 用户登陆,命令行中执行命令“vi /etc/profile”,并添加以下内容,配置环境变量(注意/etc/profile 这个文件很重要,后面 Hadoop 的配置还会用到)。 (注释:注意对应自己的安装目录和版本)

$vi /etc/profile

# set java environment          //在profile最后面添加这一段

   export JAVA_HOME=/usr/java/jdk1.6.0_43 

   exportJRE_HOME=/usr/java/jdk1.6.0_43/jre 

   exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 

   exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH 

在vi编辑器增加以上内容后保存退出,并执行以下命令使配置生效 

$chmod +x /etc/profile     //增加执行权限 

    $source /etc/profile     //生效

配置完毕后,在命令行中输入java -version,如出现下列信息说明java环境安装成功。 

$ java–version

java version "1.6.0_43" 

Java(TM) SE RuntimeEnvironment (build 1.6.0_43-b02) 

Java HotSpot(TM) Server VM(build 16.3-b01, mixed mode) 

或者使用javac验证

$javac

 

三、      Linux(CentOS)下完全分布式安装hadoop

参考课本《云计算》刘鹏P204页

总共三台机器设置:

master主机名:cnamenode(专业人士直接使用当前机器的ip作为主机名,ip是10.22.73.23)

   Slaves主机名:cdata1和cdata2(2台slave;ip分别是10.22.73.24和10.22.73.25)

每台机器上都添加一个相同的普通用户grid,密码也为grid

为了简单,三台机器普通用户下的安装文件夹也一样,如

都在/home/grid/wzwhadoop下安装

注意:保证ip配置能用,各机器之间能够ping通

对于hadoop ,不同的系统会有不同的节点划分方式。在HDFS看来,节点分为Namenode和Datanode,其中Namenode只有一个,datanode可以有多个;在MapReduce看来,节点又分为jobtracker和tasktracker,其中jobtracker只有一个,而tasktacker可以有多个。namenode和jobtracker可以部署在不同的机器上,也可以部署在同一机器上。部署namenode和/或jobtracker的机器是master,其余的都是slaves。用户甚至可以将namenode、datanode、jobtacker、tasktracker都部署在一台机器上。详细的配置方法如下。

配置之前,确保所有主机的防火墙处于关闭状态!!!一定要先关闭防火墙(所有的结点都要),否则后面的datanode启动会失败。

永久关闭防火墙: chkconfig   iptables off

[root@cdata1 ~]# /etc/init.d/iptables stop

iptables: Flushing firewall rules:                    [   OK   ]

iptables: Setting chains to policyACCEPT:filter            [  OK  ]

iptables: Unloading modules:                                        [  OK  ]

最好设置开机就不启动防火墙:(我是这样设置,防止以后出错)

[root@cdata1 ~]# vi /etc/sysconfig/selinux

SELINUX=disable

(1)   配置NameNode和DataNode

配置成功的关键在于确保各机器上的主机名和IP地址之间能正确解析。修改每台机器的/etc/hosts文件,如果该台机器作namenode用,则需要在文件中添加集群中所有机器的IP地址及其对应 主机名;如果该台机器仅作为datanode用,则只需要在文件中添加本机和namenode的IP地址及其对应的主机名。

对每台机器,用root用户登录,修改/etc/hosts

$vi /etc/hosts

[root@cnamenode /]# cat  /etc/hosts

127.0.0.1   localhost

10.22.73.23  cnamenode

10.22.73.24  cdata1

10.22.73.25  cdata2

第一行127.0.0.1环回地址也可以不要,有时候建议不要!

修改后,重新登录系统,才会出现[root@cnamenode /]的形式。

把另外2台机器cdata1和cdata2作为DataNode节点,用它们的root用户登录,分别配置它们的/etc/hosts。如下

[root@cdata1 /]# cat  /etc/hosts

127.0.0.1   localhost

10.22.73.24  cdata1

10.22.73.23  cnamenode

[root@cdata2 /]# cat  /etc/hosts

127.0.0.1   localhost

10.22.73.25  cdata2

10.22.73.23  cnamenode

(2)在所有用户上建立相同的用户grid,密码grid

$useradd –m grid

$passwd grid

(3)SSH 配置:主要是实现master访问各个slaves不需要输入密码。

用主机的grid用户登录。具体步骤见本文第二部分安装SSH。三台机器独自安装,

再次叙述如下:

每个机器,就是每台主机下都执行

$ssh-keygen -t rsa

生成.ssh目录,这个目录都有2项id_rsa和id_rsa.pub

这时候进入.ssh,执行

$cd .ssh

$cp id_rsa.pub authorized_keys

 

测试过程:

[grid@cdata2 .ssh]$ ssh 10.22.73.25   //本机ip

Are you sure you want to continue connecting (yes/no)? yes    //第一次要输入yes

[grid@cdata2 ~]$ exit

[grid@cdata2 .ssh]$ ssh 10.22.73.25

[grid@cdata2 ~]$ exit

[grid@cdata2 .ssh]$

 

这时候,master的.ssh中有三项,把master的id_rsa.pub分别复制到每个slavers上,并重新命名为master_rsa.pub

如下:登录cdata1

进入目录.ssh

$cd .ssh

$scp cnamenode:~/.ssh/id_rsa.pub ./master_rsa.pub

[grid@cdata1 .ssh]$ ls

authorized_keys  id_rsa  id_rsa.pub known_hosts  master_rsa.pub

[grid@cdata1 .ssh]$ cat master_rsa.pub > authorized_keys

这时候,master就可以无密码访问cdata1了,测试如下:

登录到cnamenode主机:

[grid@cnamenode .ssh]$ ssh 10.22.73.24

Last login: Wed Oct  9 20:03:56 2013from cnamenode

[grid@cdata1 ~]$ exit

logout

Connection to 10.22.73.24 closed.

[grid@cnamenode .ssh]$

 

对cdata2也进行同样的操作。这里不再写了。

表面上看,这两个结点的ssh免密码登录已经配置成功,但是我们还需要对主结点master也要进行上面的同样工作,这一步有点让人困惑,但是这是有原因的,具体原因现在也说不太好,据说是真实物理结点时需要做这项工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。

 

(4)在所有机器上配置Hadoop(使用普通用户grid登录)

下面首先在cnamenode上配置,hadoop-1.2.0-bin.tar存在win7的E盘下E:\wshare1下,被linux自动挂载在/mnt/hdfs/wshare1下,先拷贝至linux的/home/grid/wzwhadoop下(wzwhadoop是我预先建立的目录),再解压,过程如下:

$cp /mnt/hdfs/wshare1/hadoop-1.2.0-bin.tar /home/grid/wzwhadoop

$cd /home/grid/wzwhadoop

$tar –zxvf hadoop-1.2.0-bin.tar

就生成了hadoop-1.2.0目录,进入此目录,可以看到conf,bin等一些配置目录

$cd hadoop-1.2.0

(a)   编辑3个安装文件hadoop-1.2.0/conf目录下的core-site.xml,hdfs-site.xml ,mapred-site.xml 如下:

[grid@cnamenode conf]$ cat core-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

<configuration>

 <property>

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

 <value>hdfs://cnamenode:9000</value>

 </property>

 <property>

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

 <value>/home/grid/hadooptmp</value>

</property>

</configuration>

[grid@cnamenode conf]$  cathdfs-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

 

[grid@cnamenode conf]$ cat mapred-site.xml

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl"href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

<property>

  <name>mapred.job.tracker</name>

   <value>10.22.73.23:9001</value>

</property>

</configuration>

 

 

(b)编辑conf/masters,修改为master的主机名,每个主机名占一行,此处即为cnamenode。

[grid@cnamenode conf]$ cat masters

cnamenode

(c)编辑conf/slaves,加入所有的slaves的主机名,即cdata1和cdata2

[grid@cnamenode conf]$ cat slaves

cdata1

cdata2

(d)把Hadoop安装文件夹(hadoop-1.2.0)拷贝至cdata1和cdata2机器上

这时候,cdata1和cdata2机器都能ping通,并且实现了SSH无密码验证配置。

$scp  –r  hadoop-1.2.0 cdata1:/home/grid

$scp  –r  hadoop-1.2.0 cdata2:/home/grid

(e)分别编辑3台机器上的conf/hadoop-env.sh文件,将JAVA_HOME变量设置为各自JAVA安装的根目录,不同机器可以使用不同的java版本。(为了不产生混淆,最好都装在相同目录下,我就是这么干的,这里的java一开始实在各自的超级用户root下安装配置的,详见第二部分)

$vi hadoop-env.sh

配置hadoop-env.sh文件 ,在文件hadoop-env.sh的最后面添加以下环境变量

# set java environment 

            export JAVA_HOME=/usr/java/jdk1.6.0_43 

(注释:注意修改成对应自己的java安装目录和版本)

 

现在hadoop集群已经部署完成。如果要加入或者删除节点,只需要修改NameNode的master和slaves文件。

(5)hadoop运行

注意,在启动守护进程之前,一定要先关闭防火墙(所有的结点都要),否则datanode启动失败。在root下修改。

[root@localhost ~]#/etc/init.d/iptables stop

iptables: Flushingfirewall rules:                           [ OK  ]

iptables: Setting chainsto policy ACCEPT:filter           [  OK  ]

iptables: Unloadingmodules:                               [ OK  ]

最好设置开机就不启动防火墙:

[root@localhost ~]# vi/etc/sysconfig/selinux

SELINUX=disable

 

用普通用户grid登录。格式化文件系统,启动守护进程的命令如下:

$cd  hadoop-1.2.0

$bin/hadoop namenode –format

执行结果如下:

[grid@cnamenodehadoop-1.2.0]$ bin/hadoop namenode -format

13/10/10 05:03:50 INFOnamenode.NameNode: STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG:   host = cnamenode/10.22.73.23

STARTUP_MSG:   args = [-format]

STARTUP_MSG:   version = 1.2.0

STARTUP_MSG:   build =https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1479473;compiled by 'hortonfo' on Mon May  6 06:59:37UTC 2013

STARTUP_MSG:   java = 1.6.0_43

************************************************************/

Re-format filesystem in/home/grid/hadooptmp/dfs/name ? (Y or N) Y

13/10/10 05:03:54 INFOutil.GSet: Computing capacity for map BlocksMap

13/10/10 05:03:54 INFOutil.GSet: VM type       = 32-bit

13/10/10 05:03:54 INFOutil.GSet: 2.0% max memory = 1013645312

13/10/10 05:03:54 INFOutil.GSet: capacity      = 2^22 = 4194304entries

13/10/10 05:03:54 INFOutil.GSet: recommended=4194304, actual=4194304

13/10/10 05:03:54 INFOnamenode.FSNamesystem: fsOwner=grid

13/10/10 05:03:54 INFOnamenode.FSNamesystem: supergroup=supergroup

13/10/10 05:03:54 INFOnamenode.FSNamesystem: isPermissionEnabled=true

13/10/10 05:03:54 INFOnamenode.FSNamesystem: dfs.block.invalidate.limit=100

13/10/10 05:03:54 INFOnamenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0min(s), accessTokenLifetime=0 min(s)

13/10/10 05:03:54 INFOnamenode.FSEditLog: dfs.namenode.edits.toleration.length = 0

13/10/10 05:03:54 INFOnamenode.NameNode: Caching file names occuring more than 10 times

13/10/10 05:03:54 INFOcommon.Storage: Image file of size 110 saved in 0 seconds.

13/10/10 05:03:54 INFOnamenode.FSEditLog: closing edit log: position=4, editlog=/home/grid/hadooptmp/dfs/name/current/edits

13/10/10 05:03:54 INFOnamenode.FSEditLog: close success: truncate to 4,editlog=/home/grid/hadooptmp/dfs/name/current/edits

13/10/10 05:03:54 INFOcommon.Storage: Storage directory /home/grid/hadooptmp/dfs/name has beensuccessfully formatted.

13/10/10 05:03:54 INFOnamenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shuttingdown NameNode at cnamenode/10.22.73.23

************************************************************/

注意出现“successfully formatted”,说明格式化成功!接着

[grid@cnamenodehadoop-1.2.0]$ bin/start-all.sh

starting namenode, loggingto/home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-namenode-cnamenode.out

cdata2: starting datanode,logging to /home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-datanode-cdata2.out

cdata1: starting datanode,logging to/home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-datanode-cdata1.out

cnamenode: startingsecondarynamenode, logging to /home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-secondarynamenode-cnamenode.out

starting jobtracker,logging to/home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-jobtracker-cnamenode.out

cdata1: startingtasktracker, logging to /home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-tasktracker-cdata1.out

cdata2: startingtasktracker, logging to/home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-tasktracker-cdata2.out

[grid@cnamenodehadoop-1.2.0]$ jps

15127 Jps

14750 NameNode

14923 SecondaryNameNode

15010 JobTracker

Jps查看进程有4项(JpsNameNode SecondaryNameNodeJobTracker)出现上述情况表示安装成功!

 

在slaves下查看,如下(包括jps有3个进程,必须要有DataNodeheTaskTracker):

[grid@cdata1 hadoop-1.2.0]$ jps

7130 TaskTracker

7202 Jps

7040 DataNode

 

[grid@cdata2 ~]$ jps

7145 TaskTracker

7217 Jps

7041 DataNode

注释:当这项启动不成功的时候,检查:临时文件夹hadooptmp有木有删除;各机器防火墙有木有关闭;hadoop-grid-namenode-cnamenode.out等这些文件的权限有没有chmod 777。后2个操作都是在root用户下进行的

关闭hadoop进程,在cnamenode主机grid用户下,进入hadoop安装目录下,如下:

$bin/stop-all.sh

 

再次启动hadoop的时候,要重新格式化namenode,注意:格式化之前必须删除namenode及datanode上的tmp文件夹,tmp文件夹就是core-site.xml文件里hadoop.tmp.dir所指定的文件夹。防止格式化造成的namespaceID不一致,不过格式化后hdfs上的数据会丢失。操作如下:

$cd /home/grid/

$rm –rf hadooptmp

(6)在浏览器下输入地址查看:

输入http://cnamenode:50070可以查看NameNode以及整个分布式文件系统的状况。

输入http://cnamenode:50030可以查看JobTracker的运行状态。

(7)运行wordcount实例。

假如文件夹/home/grid/下有个input.txt文件。

[grid@cnamenode hadoop-1.2.0]$ bin/hadoop dfs -put/home/grid/input.txt  in

[grid@cnamenode hadoop-1.2.0]$ bin/hadoop dfs –ls

[grid@cnamenode hadoop-1.2.0]$ bin/hadoop jar hadoop-examples-1.2.0.jarwordcount in out

// 可以统计数结果

[grid@cnamenode hadoop-1.2.0]$ bin/hadoop dfs -cat out/*

也可以把文件复制到本地查看

[grid@cnamenode hadoop-1.2.0]$ bin/hadoop dfs -get out output

[grid@cnamenode hadoop-1.2.0]$cat output/*

停止hadoop守护进程。

[grid@cnamenode hadoop-1.2.0]$ bin/stop-all.sh

stopping jobtracker

cdata2: stopping tasktracker

cdata1: stopping tasktracker

stopping namenode

cdata2: stopping datanode

cdata1: stopping datanode

cnamenode: stopping secondarynamenode 

附加:

可用到的命令:

$find –name 文件名           //查找某个文件在哪

 

安装中有可能出现问题的几大块是:防火墙,ssh配置,java安装,hadoop配置,文件权限赋予。可能出现的问题:

1、java到底安装在超级用户还是普通用户?

我是安装在超级用户root下的,这样修改环境变量更容易一些,不需要权限的限制了。

2、防火墙:一定要先关闭所有机器的防火墙,最好设置成开机不启动,如文中所述。

3、SSH配置,一定要安装文中的步骤,不成功就删除重新配置!在这我走了不少弯路。

4、hadoop配置,一定要注意每个细节,知道每个文件代表的什么意思。

5、文件权限赋予,文中也有提到。chmod这个命令实在root用户下使用的!

6、其他问题:

1 datanode无法启动,在master主节点机器上,/home/grid/hadoop安装文件夹下,输入$bin/hadoopdfsadmin -report查看集群启动情况,发现datanode根本没有起起来,或者格式化所有节点的时候,根本不successful

解决 :首先检查各个xml配置文件是否正确写入,jdk环境变量是否写了,ssh是否通,也可能提示你core-site.xml文件里面有错误,xml文件里第一行不能是空行,如果是自己写的很有可能是最上面两行之间有空行,或者全角字符,这时就从master主机中把同样的文件用scp命令传到slave主机,覆盖掉原来的文件即可

以上操作都是在bin/stop-all.sh之下操作的,必须先停掉所有节点

删除所有tmp文件夹和logs文件夹,tmp文件就是core-site.xml文件里hadoop.tmp.dir所指定的文件夹,logs在/home/hadoop/hadoop安装文件夹 下,然后再重新格式化所有节点,start-all.sh

2 master上NameNade,JobTrackerand SecondNamenode守护进程成功启动,但是在node1和node2上的DatanNode没有启动成功,可能原因:  由于master的/etc/hosts配置中把主机名和127.0.0.1绑定,要把这项删掉,并配置实际IP与主机名的映射,这样namenode才能在正确监听。最有可能是namenode和datanode的namespaceID不一致.

3 若出现:

[grid@cnamenodehadoop-1.2.0]$ bin/start-all.sh

starting namenode, loggingto /home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-namenode-cnamenode.out

log4j:ERRORsetFile(null,true) call failed.

java.io.FileNotFoundException:/home/grid/wzwhadoop/hadoop-1.2.0/libexec/../logs/hadoop-grid-namenode-cnamenode.log(Permission denied)

      at java.io.FileOutputStream.openAppend(Native Method)

      atjava.io.FileOutputStream.<init>(FileOutputStream.java:192)

      atjava.io.FileOutputStream.<init>(FileOutputStream.java:116)

      at org.apache.log4j.FileAppender.setFile(FileAppender.java:290)

      atorg.apache.log4j.FileAppender.activateOptions(FileAppender.java:164)

 

解决方法:修改错误中提示的所有不能找到的logs里文件的权限,之后重启hadoop集群(logs直接在hadoop安装目录下)

[root@cnamenode  logs]# chmod 777hadoop-grid-namenode-cnamenode.out

[root@cnamenode  logs]#chmod 777 hadoop-hadoop-jobtracker-grid.out.5
[root@cnamenode  logs]# chmod 777hadoop-hadoop-jobtracker-grid.log

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值