Hadoop伪分布式环境搭建(hadoop-0.20.2、hive-0.11.0、pig-0.5.0、zookeeper-3.4.3)

本文详细介绍了在CentOS 6.0系统上搭建Hadoop伪分布式环境的过程,包括安装虚拟机、SSH设置、JDK安装、Hadoop环境配置、Hive和Pig的安装以及Zookeeper的配置。通过这些步骤,读者可以了解如何在单台机器上模拟多节点的Hadoop集群环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.安装虚拟机及前期准备

1.      VMWare 下安装CentOS 6.0系统,网络制式采用NAT

2.      将hadoop添加到sudoers

su  root

输入root的口令,成功后就换成了root用户

继续输入命令:

chmod u+w/etc/sudoers

vi/etc/sudoers

在此行:root ALL=(ALL:ALL) ALL 后加一行:

hadoopALL=(ALL:ALL) ALL

意思就是允许hadoop用户sudo运行任何命令

保存

chmod u-w/etc/sudoers

这是把sudoers文件的权限改回440,即root用户通常也只读。Ubuntulinux的sudo命令运行时会检查这个文件权限是否440, 如果不是440, sudo命令都没有办法工作。所以改完之后一定要改回原来的440.

3.      用winscp将jdk-6u24-linux-i586.bin、hadoop-0.20.2.tar.gz、hive-0.11.0.tar.gz、pig-0.5.0.tar.gz、zookeeper-3.4.3分别放入/usr/java、/usr/hadoop、/usr、/usr、/usr文件中。

二.ssh设置

1.      Master(NameNode| JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode| Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。

2.      Master机器上生成密码对(以hadoop1登入)

ssh-keygen–t rsa –P ''

这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。

查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。

接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

cat~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

3.      在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。

1)修改文件"authorized_keys"

chmod 600~/.ssh/authorized_keys

备注:如果不进行设置,在验证时,扔提示你输入密码,在这里花费了将近半天时间来查找原因。

2)设置SSH配置

 

  用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。

vim/etc/ssh/sshd_config

RSAAuthentication yes #启用 RSA 认证

PubkeyAuthentication yes# 启用公钥私钥配对认证方式

AuthorizedKeysFile.ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

设置完之后记得重启SSH服务,才能使刚才设置有效。

service sshdrestart

退出root登录,使用hadoop1普通用户验证是否成功。

sshlocalhost

三.安装JDK(JDK1.6)

(1)    #cd /usr/java
#sudo chmod 777 jdk-6u24-linux-i586.bin

使当前用户拥有对jdk-6u24-linux-i586.bin的执行权限;

(2)    #sudo ./ jdk-6u24-linux-i586.bin
运行jdk-6u24-linux-i586.bin,这时会显示出JDK的安装许可协议,按空格翻页,最后程序会问你是不是同意上面的协议,当然同意啦,输入“yes”之后开始解压JDK到当前目录。此时屏幕上会显示解压的进度。

解压完成后 /usr/java目录下会新建一个名为“jdk-1.6.0_24”的目录,至此我们已经在CentOS下安装好了JDK。

(3)  以用户hadoop1登录,进入用户主目录/home/hadoop1,命令行中执行命令“vi.bashrc”,加入以下内容,配置用户的人环境变量,对系统的环境变量不会造成影响。

# set java environment

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

export JRE_HOME=/usr/java/jdk1.6.0_24/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

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

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

    chmod +x/home/hadoop/ .bashrc ;增加执行权限

    source/home/hadoop/ .bashrc;

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

java version "1.6.0_24"

Java(TM) SE Runtime Environment (build 1.6.0_24-b04)

Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixedmode)

四.安装hadoop(以root登陆或者修改读写权限)

1. sudo chmod 777hadoop-0.20.2.tar.gz

sudo tar zxvfhadoop-0.20.2.tar.gz 进行hadoop压缩文件解压。

2.将hadoop的用户和用户组都改成创建者

sudo chown –Rhadoop:hadoop /usr/hadoop

这样就可以保存运行过程中产生的datanode和namenode等存储文件;

sudo chmod -Ra+w /usr/local

将hadoop的目录权限设为当前用户可写

3.配置hadoop-env.sh文件

命令为sudo vi hadoop-env.sh

添加 # set java environment

exportJAVA_HOME=/usr/java/jdk1.6.0_24

编辑后保存退出。

4.配置core-site.xml

[hadoop1@masterconf]# vi core-site.xml

<?xmlversion="1.0"?>

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

 

<!-- Put site-specific property overrides inthis file. -->

 

<configuration>

   <property>

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

       <value>/usr/hadoop/hadoop-0.20.2/tmp</value>

       <description>A base for othertemporarydirectories.</description>

   </property>

<!-- file system properties-->

   <property>

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

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

   </property>

</configuration>

5.配置hdfs-site.xml

[hadoop1@masterconf]# vi hdfs-site.xml

<?xmlversion="1.0"?>

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

 

<!-- Put site-specific property overrides inthis file. -->

 

<configuration>

   <property>

       <name>dfs.replication</name>

       <value>1</value>

   </property>

</configuration>

6.配置mapred-site.xml

[hadoop@vm10110041conf]$ sudo vi mapred-site.xml

<?xmlversion="1.0"?>

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

 

<!-- Put site-specific property overrides inthis file. -->

 

<configuration>

   <property>

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

       <value>http://192.168.131.131:9001</value>

   </property>

</configuration>

 

7.配置masters文件和slaves文件

[hadoop@masterconf]# vi masters

192.168.131.131

[hadoop@masterconf]# sudo vi slaves

192.168.131.131

注:因为在伪分布模式下,作为master的namenode与作为slave的datanode是同一台服务器,所以配置文件中的ip是一样的。

8.编辑主机名

[hadoop@master ~]#sudo vi /etc/hosts

# Do not removethe following line, or various programs

that requirenetwork functionality will fail.

127.0.0.1localhost

192.168.131.131master

192.168.131.131slave

9.修改PATH

修改自己的环境变量:

Vi  /home/hadoop/.bashrc

未修改前是:Export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

在$PATH前面加入Hadoop的路径,不能在后面。

改完后是:

Export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:/usr/hadoop/hadoop-0.20.2/bin:$PATH

 

10.启动hadoop(第一次需要格式化)

Hadoop伪分布式环境搭建

启动过程

Hadoop伪分布式环境搭建

查看进程(一个都不能少)

Hadoop伪分布式环境搭建

五.Windows下,用Eclipse配置与使用hadoop

1.      解压hadoop-0.20.2.tar.gz到windows下本地磁盘,并将目录下/contrib/eclipse-plugin中hadoop-0.20.2-eclipse-plugin复制到eclipse的plugin目录下。

2.      Eclipse下openperspective添加Map/Reduce

 

3.      切换到Map/Reduce下,右下角出现Map/ReduceLocations,点击添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值