编译安装hadoop2.2.0(系统为CentOS,完全避免运行时出现系统版本冲突,如64位)

本文介绍了在CentOS系统中,如何为Hadoop2.2.0创建专门的用户和组,安装JDK、maven、protobuf等依赖,编译源代码并解决依赖冲突,最后进行安装、配置和启动Hadoop的详细步骤。
添加专门用户和组
# groupadd my_term
# useradd -g my_term myhadoop
设置用户口令为mypassword
# passwd myhadoop

建一个专用目录
# mkdir /home/myhadoop/res
把相关软件包都下载到这里

安装JDK
# cd /home/myhadoop/res
# tar -zvxf jdk-7u5-linux-x64.tar.gz
mv jdk1.7.0_05 /home/myhadoop/jdk1.7.0_05

安装基本编译程序
yum -y install svn ncurses-devel gcc*
yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel ncurses-devel

安装maven
cd /home/myhadoop/res
tar zxvf apache-maven-3.1.1-bin.tar.gz
mv apache-maven-3.1.1 /home/myhadoop/maven

安装protobuf
tar zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make && make install

编译hadoop源代码
cd /home/myhadoop/res
tar -zvxf hadoop-2.2.0-src.tar.gz
cd hadoop-2.2.0-src

在hadoop-common-project/hadoop-auth/pom.xml文件中
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty</artifactId>
      <scope>test</scope>
    </dependency>
后边添加
    <dependency>
      <groupId>org.mortbay.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <scope>test</scope>
    </dependency>
   
在hadoop-hdfs-project/hadoop-hdfs/pom.xml文件中
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-javadoc-plugin</artifactId>
   <configuration>
      <excludePackageNames>org.apache.hadoop.hdfs.protocol.proto</excludePackageNames>
   </configuration>   
后边加上
   <executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
   </executions>   

执行
/home/myhadoop/maven/bin/mvn clean package -Pdist,native -DskipTests -Dtar
cp hadoop-dist/target/hadoop-2.2.0.tar.gz ../hadoop-2.2.0.tar.gz

安装hadoop
cd /home/myhadoop/res
tar -zvxf hadoop-2.2.0.tar.gz
mv hadoop-2.2.0 /home/myhadoop/hadoop

设置环境变量
# vi /etc/profile //在最后加上以下内容
JAVA_HOME=/home/myhadoop/jdk1.7.0_05
export JAVA_HOME
export HADOOP_HOME=/home/myhadoop/hadoop
CLASSPATH=/home/myhadoop/jdk1.7.0_05/lib:/home/myhadoop/jdk1.7.0_05/jre/lib:.   
export CLASSPATH 
export MAVEN_HOME=/home/myhadoop/maven 
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$MAVEN_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin   
export PATH   
JRE=/home/myhadoop/jdk1.7.0_05/jre   
export JRE
重载
source /etc/profile

免密码ssh设置
现在确认能否不输入口令就用ssh登录localhost:
$ ssh localhost
如果不输入口令就无法用ssh登陆localhost,执行下面的命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

建相关目录
mkdir /home/myhadoop/hadoop/dir
mkdir /home/myhadoop/hadoop/dir/tmp
mkdir /home/myhadoop/hadoop/dir/dfs
mkdir /home/myhadoop/hadoop/dir/dfs/name
mkdir /home/myhadoop/hadoop/dir/dfs/data
mkdir /home/myhadoop/hadoop/dir/mr
mkdir /home/myhadoop/hadoop/dir/mr/tmp
mkdir /home/myhadoop/hadoop/dir/mr/local

配置
hadoop-env.sh中修改
export JAVA_HOME=/home/myhadoop/jdk1.7.0_05

core-site.xml配置文件
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/apps/hadoop/dir/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
<description>The name of the default file system. Either the literal string "local" or a host:port for NDFS.</description>
</property>
</configuration>

hdfs-site.xml配置文件
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/apps/hadoop/dir/dfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/apps/hadoop/dir/dfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>

复制mapred-site.xml.template成mapred-site.xml
修改mapred-site.xml
<configuration>
<!-- <property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property> 如要启用yarn就去掉注释-->
<property>
<name>mapreduce.cluster.temp.dir</name>
<value>file:/apps/hadoop/dir/mr/tmp</value>
<final>true</final>
</property>
<property>
<name>mapreduce.cluster.local.dir</name>
<value>file:/apps/hadoop/dir/mr/local</value>
<final>true</final>
</property>
</configuration>

yarn-site.xml配置文件
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>shuffle service that needs to be set for Map Reduce to run</description>
</property>

修改目录属性
chown -R myhadoop /home/myhadoop

格式化 namenode
/home/myhadoop/hadoop/bin/hdfs namenode -format
开始守护进程
/home/myhadoop/hadoop/sbin/start-dfs.sh
开始 yarn守护进程
/home/myhadoop/hadoop/sbin/start-yarn.sh

/home/myhadoop/hadoop/sbin/start-all.sh
看看成功不
jps
5949 SecondaryNameNode
6084 ResourceManager
5653 NameNode
5784 DataNode

恭喜您!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值