Home  >  Article  >  Database  >  Ubuntu上搭建hadoop 2.2.0环境,配置yarn(单机)

Ubuntu上搭建hadoop 2.2.0环境,配置yarn(单机)

WBOY
WBOYOriginal
2016-06-07 15:38:351208browse

how to install jdk in ubuntu 1、首先到oracle下载上下载jdk-7u5-linux-x64.tar.gz 2、将jdk-7u5-linux-x64.tar.gz拷贝到/usr/lib/jdk/目录下面,这里如果没有jdk文件夹,则创建该文件夹,命令: sudo mkdir jdk //创建文件夹jdk sudo cp -r ~/download/jdk-7

how to install jdk in ubuntu

1、首先到oracle下载上下载jdk-7u5-linux-x64.tar.gz

2、将jdk-7u5-linux-x64.tar.gz拷贝到/usr/lib/jdk/目录下面,这里如果没有jdk文件夹,则创建该文件夹,命令:

sudo mkdir jdk //创建文件夹jdk

sudo cp -r ~/download/jdk-7-linux-x64.tar.gz /usr/lib/jdk/ //把下载的文件拷贝到心创建的目录下面

sudo tar -zxvg jdk-7-linux-x64.tar.gz //解压缩文件

3、设置环境变量,用gedit打开/etc/profile文件

sudo gedit /etc/profile

在文件的最后面增加:

export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_51

export JRE_HOME=/usr/lib/jdk/jdk1.7.0_51/jre

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

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


4、将系统默认的jdk修改过来


$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_05/bin/java 300

$ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_05/bin/javac 300

$ sudo update-alternatives --config java $ sudo update-alternatives --config javac

5、检测,输入java -version


java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b05) Java HotSpot??(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

how to install hadoop 2.2.0 

安装依赖包

$ sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev $ sudo apt-get install openssh-client $ sudo apt-get install openssh-server 安装配置 protobuf

下载最新的protobuf:  https://code.google.com/p/protobuf/downloads/list 解压,依次运行 $ ./configure --prefix=/usr $ sudo make $ sudo make check $ sudo make install 检查一下版本 $ protoc --version libprotoc 2.5.0 安装配置 maven $ sudo apt-get install maven 建立ssh信任

$ cd /home/hduser 

$ ssh-keygen -t rsa -P "" 

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

用命令验证一下是否可以免密码链接localhost 

$ ssh localhost

编译 hadoop 2.2.0

解压到用户目录 /home/wilbur/. 进入 hadoop-2.2.0-src 目录

因为已经安装了maven, protobuf, java环境也有了,compiler也有了所以直接运行 

$ mvn package -Pdist,native -DskipTests? -Dtar 

编译过程中会出现一个错误,这个错误是由于hadoop2.2.0的代码bug导致的,

解决办法如下 hadoop-common-project/hadoop-auth/pom.xml 在文件中添加以下配置

org.mortbay.jetty

 jetty-util 

test

 

org.mortbay.jetty 

jetty 

test

然后重新运行mvn clean package -Pdist,native -DskipTests?? -Dtar命令编译即可

(需注意文件的所有者,修改为当前用户,否则之后可能出错)

配置相关文件

1)配置etc/hadoop目录下的core-site.xml,hdfs-site.xml,mapred-site.xml 

core-site.xml:

  

fs.default.name  hdfs://localhost/

hdfs-site.xml:

 

dfs.replication 1


    dfs.namenode.name.dir
    /root/jhh/hadoop/yarn_data/hdfs/namenode
 

 
    dfs.datanode.data.dir
    /root/jhh/hadoop/yarn_data/hdfs/datanode
 


创建文件夹:
mkdir -p /root/jhh/hadoop/yarn_data/hdfs/namenode
mkdir -p /root/jhh/hadoop/yarn_data/hdfs/datanode



 mapred-site.xml:


    mapreduce.framework.name
    yarn

yarn-site.xml:

 
    yarn.nodemanager.aux-services
    mapreduce_shuffle
 

 
    yarn.nodemanager.aux-services.mapreduce.shuffle.class
    org.apache.hadoop.mapred.ShuffleHandler
 


启动hadoop

初始化 启动 停止

 ./bin/hdfs namenode -format

 ./sbin/start-dfs.sh 

./sbin/start-yarn.sh 

(启动nodemanager存在问题,问题可能出在yarn_damons.sh上,需要手动开启: ./sbin/yarn-daemon.sh start nodemanager)

./sbin/stop-dfs.sh 

./sbin/stop-yarn.sh

jps命令来查看node是否都启起来了


问题及解决方案

1.启动过程中出现问题: JAVA_HOME IS NOT SET. 

解决方法是修改etc/hadoop/hadoop-env.sh文件,添加如下内容

export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_51

2.HADOOP_CONF_DIR 未配置,出现错误:Error: Cannot find configuration directory: 在/etc/profile中添加:

export HADOOP_HOME=/root/jhh/hadoop/hadoop-0.23.9

export YARN_HOME=/root/jhh/hadoop/hadoop-0.23.9

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop

3.访问log文件,permisson denied。 chmod修改log文件夹权限。


总结:

今天刚配置了一遍,只是单机版的伪分布式环境,之后在测试机上搭一遍。

刚开始学习hadoop,安装配置过程也走了一些弯路,希望多多讨论,互相学习。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn