码迷,mamicode.com
首页 > 其他好文 > 详细

hadoop -- setup and configuration

时间:2015-08-25 19:37:30      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:hadoop   install   安装   设置   环境变量   

本节配置一个基于 linux 的 hadoop 环境。

Hadoop Modes

hadoop 支持三种模式:

  • Local/Standalone Mode: 默认设置是Standalone 模式,作为一个java 进程运行。
  • Pseudo Distributed Mode: 在一个机器上模拟分布式。hdfs, YARN, MapReduce 等这些hadoop daemon 都是一个独立的 java 进程。
  • Fully Distributed Mode: 需要两个或多个机器作为一个集群,实现真正的分布式。

pre-install setup

Creating a user

推荐为 hadoop 建一个独立的用户, 修改目录权限

$ su
    passwd
# useradd hadoop
# passwd hadoop
    New passwd:
    Retype new passwd 
# chown -R hadoop /usr/hadoop

SSH Setup

$ ssh-keygen -t rsa 
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
$ chmod 0600 ~/.ssh/authorized_keys 

然后在当前 shell 用ssh 链接 localhost 就无需输入密码了。

$ ssh localhost

installing java

$ java -version

如果这个指令可以正确的查看到java版本那么java已经争取安装,如果不能,请务必要先安装好java。

  • step1: 在这儿下载 java (jdk-*u**-OS-x64.tar.gz).
  • setp2: 切换到java所在文件夹并解压。
$ cd Downloads/ 
$ tar zxf jdk-7u71-linux-x64.gz 
$ ls 
jdk1.7.0_71   jdk-7u71-linux-x64.gz 
  • step3: 使所有用户可以使用java, 移动java到“/usr/local”, 或者其他你希望安装的地方。
$ su 
password: 
# mv jdk1.7.0_71 /usr/local/ 
  • step4
    在 ~/.bashrc 里面添加以下内容:
export JAVA_HOME=/usr/local/jdk1.7.0_71 
export PATH=$PATH:$JAVA_HOME/bin 
$ source ~/.bashrc
  • step5
    为方便管理,把java 加入到版本管理器,ubuntu 下是 update-alternatives:
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2

# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2

# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2

# alternatives --set java usr/local/java/bin/java

# alternatives --set javac usr/local/java/bin/javac

# alternatives --set jar usr/local/java/bin/jar

Install Hadoop

在这找到你需要的版本,下载Hadoop, 并加压. 我下载的是 hadoop-2.7.1

$ su 
password: 
# cd /usr/local 
# wget http://apache.claz.org/hadoop/common/hadoop-2.7.1/hadoop-2.4.1.tar.gz
# tar xzf hadoop-2.7.1.tar.gz 
# chmod -R 777 /usr/local/hadop-2.7.1

Install in Standalone Mode

在这个模式下没有daemons, 并且都在同一个 JVM 里运行。
把下面的命令写入 ~/.bashrc

export HADOOP_HOME=/usr/local/hadoop 
export PATH=$HADOOP_HOME/bin:$PATH
$ source ~/.bashrc

然后确认一下 Hadoop 是否可以正常工作:

$ hadoop version

如果安装成功会显示类似以下的结果(这是我的输出):

Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657a
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop-2.7.1/share/hadoop/common/hadoop-common-2.7.1.jar

let’s do a test

现在,我们用 standalone 模式下的 hadoop 做一个小小 wordcount 的测验

$ cd $HADOOP_HOME
$ mkdir input
$ cp *.txt 
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar  wordcount input ouput  #请查看你所安装按本的jar文件的名字
$ cat output/*

然后,不出意外的话,你应该就可以看到文件里单词的个数了。

Install in Pseudo Distributed Mode

Hadoop setup

把下面的命令写入 ~/.bashrc

export HADOOP_HOME=/usr/local/hadoop 
export HADOOP_MAPRED_HOME=$HADOOP_HOME 
export HADOOP_COMMON_HOME=$HADOOP_HOME 
export HADOOP_HDFS_HOME=$HADOOP_HOME 
export YARN_HOME=$HADOOP_HOME 
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin 
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_LOG_DIR=$HADOOP_HOME/logs #这个是默认位置,也可以自定义你希望的位置
$ source ~/.bashrc

Hadoop configuration

修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中设置 java 环境变量 JAVA_HOME

#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/opt/jdk1.8.0_81

修改 $HADOOP_HOME/etc/hadoop/core-site.xml 文件:

<configuration>
    <property>
        <name>fs.defaultFS</name> //也可以写作 fs.default.name
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

修改 $HADOOP_HOME/etc/hadoop/core-site.xml 文件:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

     <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value> //这里file后面是三个斜杠,我打成了两个,一直启动不起来NameNode.
   </property>

   <property>
      <name>dfs.data.dir</name> 
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> 
   </property>
</configuration>

格式化 HDFS 文件系统

$ hdfs namenode -format

启动 NameNode 和 DataNode 的守护进程

$ start-dfs.sh
$ jps  # 查看是否正常启动
    172075 Jps
    169799 SecondaryNameNode
    34918 Nailgun
    169311 NameNode
    169483 DataNode
$ stop-dfs.sh

note: 如果你是按博客里面的内容下载的hadoop-..*.tar.gz的安装包,并且如果你的机器是64位的话,你会出现一个WARNING,如下:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

这个是因为安装包里面的 $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 这个本地的 Hadoop 库是在32位机器上编译的,可以做以下选择:
1. 忽略它,因为只是个WARN,并不会影响HADOOP 的功能
2. 担心它会造成不稳定,下载 Hadoop 的源码包 hadoop-..*-src.tar.gz, 重新编译
具体可以参考【链接1】【链接2

stop之前可以通过浏览器查看 NameNode,其默认端口是50070, DataNode 的默认端口是50030
+ http://localhost:50070
+ http://localhost:50030
技术分享
如果如果没有正常启动可以在 $HADOOP_LOG_DIR 目录下查看对应的log文件里的内容,对应调试。

YARN configuration

修改 $HADOOP_HOME/etc/hadoop/mapred-site.xml 文件:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改 $HADOOP_HOME/etc/hadoop/yarn-site.xml 文件:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
$ start-yarn.sh
$ jps  # 查看是否正常启动
    152423 JournalNode
    173170 Jps
    34918 Nailgun
    172778 ResourceManager
    172956 NodeManager
$ stop-yarn.sh

ResourceManager默认的浏览器端口是8088,stop之前可以在;浏览器查看:
+ http://localhost:8088
技术分享
或者可以用脚本 start/stop-all.sh 进行管理

$ start-all.sh
$ stop-all.sh

版权声明:本文为博主原创文章,未经博主允许不得转载。

hadoop -- setup and configuration

标签:hadoop   install   安装   设置   环境变量   

原文地址:http://blog.csdn.net/light_lj/article/details/47955611

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!