Hadoop安装(含client安装)

By TANG Jia


本Hadoop案例中涉及4台机器,其中1台namenode和2台datanode构成HDFS系统,另外还有1台client。 

角色定位     主机名

Namenode   master

Datanode    slave1

Datanode    slave2

Client       client

 

1.    安装前准备工作:

1.1.更改4台机器主机名为master,slave1,slave2,client

修改/etc/sysconfig/network文件

1.2. 为4台机器配置静态IP,并加上DNS(1个以上)

修改/etc/sysconfig/network-scripts/ifcfg-eth0文件

更改为:

DEVICE=eth0

BOOTPROTO=static

HWADDR=10:78:D2:99:3B:EA

ONBOOT=yes

TYPE=Ethernet

IPADDR=192.168.0.10

NETMASK=255.255.255.0

GATEWAY=192.168,0.2

BROADCAST=192.168.0.255

DNS1=192.168.0.2

1.3. 为4台机器写入主机名IP映射

修改/etc/hosts文件

1.4. 重启网络,执行更改

/etc/init.d/network   restart

(此操作会将2中的DNS写入文件/etc/resolv.conf中)

1.5. 为3台机器(master,slave1,slave2)创建hadoop用户,为client机器创建viewlog用户

groupadd  hadoop

useradd  -g   hadoop  hadoop

赋予hadoop用户sudo权限,

            gedit  /etc/sudoers

在root  ALL=(ALL:ALL)   ALL行后添加

            hadoop  ALL=(ALL:ALL)ALL行

(同样的操作添加viewlog用户并赋予sudo权限)

 

2.    jdk安装(4台机器)

2.1.创建目录/usr/java

2.2.下载jdk(案例中为jdk-7u17-linux-x64.rpm)至/usr/java中

2.3.安装

cd   /usr/java

rpm  -ivh  jdk-7u17-linux-x64.rpm

2.4.安装完成,配置java环境文件/etc/profile

vim  /etc/profile

最后行添加以下内容:

export  JAVA_HOME=/usr/java/jdk1.7.0_17

export JRE_HOME=/usr/java/jdk1.7.0_17/jre

export PATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JRE_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2.5.更新环境变量source/etc/profile

 

3.    ssh配置

3.1.关闭防火墙/etc/init.d/iptables   stop

切换至hadoop用户

3.2.安装ssh协议服务(4台机器)并启用

  sudo yum  install openssh-server

  sudo  /etc/init.d/ssh  restart

3.3.查询ssh服务有无启动

  ps -e | grep  ssh

  -----sshd(存在sshd进程代表ssh服务已启用)

3.4.master上配置无密码登录slave1,slave2,client

仅在master上:

ssh-keygen -t rsa -P “”(此时在/home/hadoop/.ssh目录下产生秘钥id_rsa和公钥id_rsa.pub)

cd  /home/hadoop/.ssh

修改.ssh(700)与id_rsa.pub(644)权限

cat  id_rsa.pub  >> authorized_keys(追加公钥为信任)

3.5.将master上公钥传送给所有slaves

Master上hadoop用户:

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

scp    authorized-keys hadoop@slave2:/home/hadoop/.ssh

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

3.6.在master机器上,可ssh   主机名或IP    登陆其他机器

 

4.    Hadoop安装(4台机器,可仅在master上操作,然后scp/rsync至其他节点)

4.1.下载hadoop包至/home/hadoop/hadoopinstall下   /home/hadoop/hadoopinstall/hadoop-1.2.1.tar.gz

4.2.解压包、hadoop目录更名

Hadoop用户:cd  ~/hadoopinstall

tar  -zxf  hadoop-1.2.1.tar.gz 

mv  -r  hadoop-1.2.1  hadoop(更改目录名,方便后续操作)

4.3.再次修改环境变量文件/etc/profile

sudo  vim  /etc/profile                  

最后行添加:

export HADOOP_HOME=/home/hadoop/hadoopinstall/hadoop

export Path=$PATH:$HADOOP_HOME/bin

保存退出

4.4.更新环境配置source   /etc/profile

4.5.配置conf目录下hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml四个文件

4.5.1.     配置hadoop-env.sh

cd  ~/hadoopinstall/hadoop/conf

vim hadoop-env.sh

更改export JAVA_HOME为

export JAVE_HOME=/usr/java/jdk1.7.0_17

与/etc/profile中一致

4.5.2.     配置core-site.xml

先在$HADOOP_HOME下建立tmp文件夹

修改core-site.xml

   

  fs.default.name   

 hdfs://192.168.0.10:9000   

 

 hadoop.tmp.dir

 /home/hadoop/hadoopinstall/hadoop/tmp 

4.5.3.     配置hdfs-site.xml

修改hdfs-site.xml(先在/home/hadoop/hadoopinstall/hadoop目录下建立hdfs目录,在其下建立data和name文件夹)

dfs.name.dir

/home/hadoop/hadoopinstall/hadoop/hdfs/name

 

dfs.data.dir

/home/hadoop/hadoopinstall/hadoop/hdfs/data

 

dfs.replication

2(表示数据冗余数,默认为3,可以根据需要进行设置)

4.5.4.     配置mapred-site.xml

修改mapred-site.xml

   

    

   mapred.job.tracker   

   192.168.0.10:9001   

  

 

    

   mapred.system.dir   

   /home/hadoop/hadoopinstall/hadoop/mapred/system   

  

4.6.配置masters,slaves文件

masters:master(主机名 或 IP)

slaves:slave1,slave2

4.7.将配置好的hadoop目录发送至slave1,slave2,client的~/hadoopinstall下

slave1,slave2:

 scp ~/hadoopinstall/hadoop hadoop@slave1:/home/hadoop/hadoopinstall

 scp ~/hadoopinstall/hadoop hadoop@slave2:/home/hadoop/hadoopinstall

Client:

 scp ~/hadoopinstall/hadoop  viewlog@client:/home/viewlog/hadoopinstall

 

4.8.更改client机器的hdfs-site.xml文件(重点注意)

添加一个条目:

    

   hadoop.job.ugi   

   hadoop,supergroup   

 

5.    启动HDFS(仅在namenode上操作)

5.1. 进入hadoop目录

cd  /home/hadoop/hadoopinstall/hadoop

5.2. 运行bin目录下的hadoop文件,格式化namenode节点

bin/hadoop  namenode -format

5.3. 运行bin目录下的start-all.sh文件,启动hadoop集群

bin/start-all.sh 

5.4. jps验证进程是否启动

成功运行时namenode应有进程:

jps

namenode

jobtracker

secondarynamenode

5.5. ssh登陆至其他机器

slave1,slave2上应有进程:

jps

datanode

tasktracker

client上仅有:

jps

5.6. 在各节点上实践操作HDFS系统

hadoop  fs -ls      查看

hadoop  fs -put     上传

hadoop  fs -get     下载

 

小结:

namenode, datanode, client节点配置文件大抵相同,不同之处寥寥无几,分别为:

1)    Core-site.xml与mapred-site.xml文件中指定的是namenode的IP:端口号,不是datanode和client的

2)    Masters文件中指定的是namenode主机名,不是datanode和client的

3)    Slaves文件中指定的是datanode的主机名,不是namenode和client的

4)    Client节点对于Hdfs-site.xml文件增加了条目hadoop.job.ugi

你可能感兴趣的:(Hadoop)