在Ubuntu上搭建hadoop 2.2.0环境配置yarn的方法
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) JavaHotSpot??(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 在文件中添加以下配置
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<scope>test</scope>
</dependency>
然后重新运行mvn clean package -Pdist,native -DskipTests?? -Dtar命令编译即可
(需注意文件的所有者,修改为当前用户,否则之后可能出错)
配置相关文件
1)配置etc/hadoop目录下的core-site.xml,hdfs-site.xml,mapred-site.xml
core-site.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.default.name</name> <value>hdfs://localhost/</value>
</property>
</configuration>
hdfs-site.xml:
<?xml version="1.0" encoding="UTF-8"?> <configuration>
<property>
<name>dfs.replication</name> <value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/jhh/hadoop/yarn_data/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/jhh/hadoop/yarn_data/hdfs/datanode</value>
</property>
</configuration>
创建文件夹:
mkdir -p /root/jhh/hadoop/yarn_data/hdfs/namenode
mkdir -p /root/jhh/hadoop/yarn_data/hdfs/datanode
mapred-site.xml:
<?xml version="1.0" encoding="UTF-8"?> <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
启动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,安装配置过程也走了一些弯路,希望多多讨论,互相学习。
本文地址:http://www.45fan.com/a/question/68954.html