tar -xvzf jdk-7u60-linux-x64.tar.gz
2.编辑 /etc/profile 文件 在最后一行添加
export JAVA_HOME=/hadoop/java/jdk1.7.0_75
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
3.使配置文件生效
source /etc/profile
4.验证安装是否成功
java -version
出现如下则表示成功(centos7自带openJDK,请先卸载)
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
二、安装Maven
1.解压maven(我这里解压到/maven)
tar -xvzf apache-maven-3.3.3-bin.tar.gz
2.添加maven环境变量
cd /etc/profile.d/
touch maven.sh
向maven.sh中添加如下内容
export MAVEN_HOME='/maven/apache-maven-3.3.3'
export PATH=$MAVEN_HOME/bin:$PATH
3.使/etc/profile 生效
source /etc/profile
4.验证安装
mvn -version
出现如下则代表成功
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T04:57:37-07:00)
Maven home: /maven/apache-maven-3.3.3
Java version: 1.7.0_75, vendor: Oracle Corporation
Java home: /hadoop/java/jdk1.7.0_75/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-229.el7.x86_64", arch: "amd64", family: "unix"
三、安装Protobuf
1.安装依赖文件
yum install gcc*
2.解压缩
tar -xvf protobuf-2.5.0.tar.bz2
3.安装
cd protobuf-2.5.0/
./configure
make
make check
make install
4.验证安装
protoc --version
出现如下则代表成功
libprotoc 2.5.0
四、编译Hadoop
1.解压缩Hadoop源码
tar -xvzf hadoop-2.5.1-src.tar.gz
2.修改Maven配置(下载速度更快)
sudo vi /maven/apache-maven-3.3.3/conf/settings.xml
在profiles中添加profile
<profile>
<id>jdk-1.7</id>
<activation>
<jdk>1.7</jdk>
</activation>
<repositories>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
3. 安装依赖包
yum install ncurses-devel
yum install openssl-devel
yum install cmake
4.进入解压Hadoop源码的目录进行编译(我这里为 /hadoop-src/hadoop-2.5.1-src/)
mvn package -Pdist,native -DskipTests -Dtar
5.等待编译结束
最后出现以下内容代表成功
BUILD SUCCESS
6.编译后的文件存在于/hadoop-src/hadoop-2.5.1-src/hadoop-dist/target 中
7.进入/hadoop-src/hadoop-2.5.1-src验证版本号
bin/hadoop version
8.验证hadoop lib的位数
file lib//native/*
在最后一行出现如下内容,则代表编译成功
lib//native/libhdfs.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
五、安装Hadoop(伪分布)
1.将/hadoop-src/hadoop-2.5.1-src/hadoop-dist/target 下的hadoop-2.5.1拷贝到某个文件夹(这里为/hadoop)
2.进入/hadoop/hadoop-2.5.1/etc/hadoop/ 修改五个文件
修改hadoop-env.sh
将${JAVA_HOME}处改成安装的Java目录
java -versionexport JAVA_HOME=/hadoop/java/jdk1.7.0_75
修改core-site.xml
<!-- 指定HDFS NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://itcast01:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录(可不写则默认在跟目录下的tmp中) -->
<property>
<name>hadoop.tmp.dir</name>
<value>/itcast/hadoop-2.4.1/tmp</value>
</property>
修改hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改mapred-site.xml
先运行 mv mapred-site.xml.template mapred-site.xml
后修改文件
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>itcast01</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3.将hadoop添加到环境变量中(修改/etc/profile)
export JAVA_HOME=/hadoop/java/jdk1.7.0_75
export HADOOP_HOME=/hadoop/hadoop-2.5.1
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export LD_LIBRARY_PATH=/protobuf/protobuf-2.5.0
生效配置
source /etc/profile
4.格式化namenode
hadoop namenode -format
5.启动hadoop
先启动hdfs
sbin/start-dfs.sh
再启动yarn
sbin/start-yarn.sh
6.使用jps命令查看是否启动成功
jps
出现六个进程即正常启动
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
注:碰到的问题
1.启动dfs时namenode没有启动成功,查看日志出现
clusterID = CID-c22c7c08-b31c-45cb-a5f7-c16b725b9a36; datanode clusterID = CID-d2a8534e-cd04-4e23-875d-7b0e255b067d
解决方法:
进入格式化存储的目录(可默认,可指定。这里为默认)
cd /tmp/hadoop-hadoop/dfs/data/current/
sudo vi VERSION
#Wed May 27 06:13:52 PDT 2015
storageID=DS-25a85965-61a1-438b-8e1f-a129b1cf671f
clusterID=CID-c22c7c08-b31c-45cb-a5f7-c16b725b9a36 (改为namenode的clusterID)
cTime=0
datanodeUuid=8eaca581-11dc-4204-8295-ec8635fd6c7b
storageType=DATA_NODE
layoutVersion=-55
2.出现提示 Unable to load native-hadoop library for your platform
如果确定所安装的Hadoop版本的native版本为64位,则在/hadoop/hadoop-2.5.1/etc/hadoop/hadoop-env.sh中添加
export HADOOP_OPTS="-Djava.library.path=/hadoop/hadoop-2.5.1/lib:/hadoop/hadoop-2.5.1/lib/native"