CentOS5.4 搭建Hadoop2.5.2伪分布式环境

时间:2022-04-23 08:59:27

简介:

Hadoop是处理大数据的主要工具,其核心部分是HDFS、MapReduce。为了学习的方便,我在虚拟机上搭建了一个伪分布式环境,来进行开发学习。

一、安装前准备:

1)linux服务器:Vmware 上CentOS6.4 mini安装

2) JDK:jdk-7u65-linux-x64.gz

3) SSH:ssh client

4) YUM源配置妥当:yum list查看

5)Hadoop:hadoop-2.5.2.tar.gz

下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz

二、环境配置

1)linux环境基本设置:

vi /etc/sysconfig/network
编辑HOSTNAME=Master
 
vi /etc/hosts
#添加
本机IP地址   Master
 
#关闭防火墙iptables,并设置为开机不启动
service iptables stop
chkconfig iptables off
 
2)JDK的安装配置
#将jdk解压到指定目录/opt/java
mkdir /opt/java
tar -zxvf jdk-7u65-linux-x64.gz -C /opt/java
 
#配置环境变量
vi /etc/profile
#在文件最后添加以下内容
export JAVA_HOME=/opt/java/jdk1.7.0_65
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#保存退出,立即生效该配置文件
source /etc/profile
#查看java是否配置好
java -version

重启系统,接下来是配置ssh无密码登陆。配置这个的理由是在启动hadoop可以不用输入密码。

3)配置SSH无密码登录

vi /etc/ssh/sshd_config
#以下4行的注释需要打开
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
 
#保存,并重启sshd
 
service sshd restart
 
#生成免登陆秘钥
ssh-keygen -t rsa
#一路回车就行。之后会在当前登陆用户主目录中的.ssh文件夹里生成2个文件。
#进入.ssh目录。
cat id_rsa.pub >> authorized_keys
 
#现在可以用ssh无密码登陆系统了。
ssh localhost
 
PS:如果提示出错,则是没有安装SSH客户端导致的
yum list|grep ssh
#找到ssh客户端
yum install -y ssh客户端名称
 
三、Hadoop安装与配置
1)上传
通过ftp将下载的hadoop安装包(hadoop-2.5.2.tar.gz)上传到/tmp目录下
2)解压
将hadoop安装包解压到指定目录下
mkdir /opt/hadoop
tar -zxvf hadoop-2.5.2.tar.gz -C /opt/hadoop
3)  配置环境变量
vi /etc/profile
#在文件最后添加以下内容

export HADOOP_HOME=/usr/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib

#保存,并执行source /etc/profile

#cd $HADOOP_HOME,看能否进入hadoop的home目录
 
4)配置Hadoop
#Hadoop配置文件放在:$HADOOP_HOME/etc/hadoop
#Hadoop主要配置五个文件:hadoop_env.sh,core_site.sh,hdfs_site.xml,mapred-site.xml,yarn-site.xml
 
#创建hadoop的name与data目录
mkdir -p /usr/hdfs/name
mkdir -p /usr/hdfs/data
mkdir -p /usr/tmp
 
#hadoop_env.sh
vi hadoop_env.sh
#配置export JAVA_HOME的目录
 
#core_site.sh
vi core_site.sh
#在configuration节点里面加入以下配置,Master也为为本地ip地址
<property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/tmp</value>
      <description>A base for other temporary directories.</description>
  </property>
<!--file system properties-->
  <property>
      <name>fs.defaultFS</name>
      <value>Master:9000</value>
  </property>
 
#hdfs_site.xml
vi hdfs_site.xml
#同样在configuration节点里面加入以下配置,配置分片数和namenode和datanode的目录
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/hdfs/data</value>
    </property>
 
#mapred-site.xml
#从模板复制一份mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
#同样在configuration节点里面加入以下配置,因为从0.23.0版本开始,就用新的mapreduce框架YARN来代替旧的框架了,所以,这里要配置成yarn
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
 
#yarn-site.xml
vi yarn-site.xml
#同样在configuration节点里面加入以下配置,注意使用Master或者本机的ip地址
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <description>The address of the applications manager interface in the RM.</description>
    <name>yarn.resourcemanager.address</name>
    <value>Master:18040</value>
  </property>
  <property>
    <description>The address of the scheduler interface.</description>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>Master:18030</value>
  </property>
  <property>
    <description>The address of the RM web application.</description>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>Master:18088</value>
  </property>
  <property>
    <description>The address of the resource tracker interface.</description>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>Master:8025</value>
  </property>
 至此,就将Hadoop的基本环境配置好了,现在可以开始我们的Hadoop之旅了!
 
四、Hadoop启动
1)HDFS格式化
#在启动Hadoop之前,我们需要先将HDFS的namenode格式化
输入命令:hadoop namenode -format
 
2)启动Hadoop,这几个sh文件在$HADOOP_HOME/sbin
启动命令:
start-dfs.sh
start-yarn.sh
 
停止命令:
stop-dfs.sh
stop-yarn.sh
 
3) 查看启动状况
#我们通过java自带的命令来查看
jps
#我们可以看到6个进程
9293 Jps
5762 ResourceManager
4652 NameNode
5850 NodeManager
4907 SecondaryNameNode
4733 DataNode
至此,我们就将Hadoop启动起来了!
我们可以通过浏览器来查看,打开浏览器输入  http://Master的IP:50070  与  http://Master的IP:8088  验证安装。
 
五、测试Hadoop

#通过运行hadoop自带的wordcount来验证安装是否正确。

#进入hadoop安装的目录,输入以下命令。

mkdir example
cd example
 
#编辑file1.txt与file2.txt
vi file1.txt
hellozhmsdd
hello hadoop
hello cz

vi file2.txt

hadoop is ok

hadoop is newbee
hadoop 2.5.2
#拷贝fiel1和file2到输入目录:data目录下
cd ..
hadoop fs -mkdir /data
hadoop fs -put -f example/file1.txt example/file2.txt /data
#进入HADOOP_HOME目录,运行wordcount例子
hadoop jar ./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.5.2-sources.jar org.apache.hadoop.examples.WordCount /data /output
#查看运行结果
hadoop fs -cat /output/part-r-00000
#结果如下:
2.5.2   1
cz      1
hadoop  4
hello   3
is      2
newbee  1
ok      1
zhm     1
到这里,环境就已经配置好了,下面就是搞使用Maven开发Hadoop项目了。