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

boy 2014-01-17 12:36:30
添加专门用户
# 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

恭喜您!
...全文
210 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

20,814

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧