hadoop经典系列(三)2.x真集群安装

一 安装JDK
#  /etc/profile
export JAVA_HOME=/application/search/java/default
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# source /etc/profile

二 无密码ssh登录(建议本机也弄)
# 本地执行:生成密钥对
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
# 远程服务器执行:用公钥给远程机器授权
# 注意:在namenode上,为Secondarynamenode也需要操作一次本机的无密钥登陆
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
# 远程机器授权全后,可以删除公钥
rm -rf ~/.ssh/id_dsa.pub

三 配置hadoop

1)配置hadoop-env.sh
export JAVA_HOME=/application/search/java/default
可以不配,默认地址为/log,但是为了防止其他地方修改
export HADOOP_LOG_DIR=/application/search/hadoop/hadoop-2.1.0-beta/logs

2)配置conf/core-site.xml
如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data0/search/hadoop/tmp</value>
            <!--备注:请先在 /data0/search/hadoop 目录下建立 tmp 文件夹-->
        <description>A base for other temporary directories.</description>
    </property>

    <!-- file system properties -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://QT-H-0117:9000</value>
    </property>
</configuration>

3)配置hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
        <!--备注:replication 是数据副本数量,例如:设置为3的话,salve少于3台就会报错,副本数量没必要设置太多-->
    </property>
<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>QT-H-0118:50090</value>
        <description>The secondary namenode http server address and port.</description>
    </property>
4)配置yarn-site.xml
<property>
    <description>The hostname of the RM.</description>
    <name>yarn.resourcemanager.hostname</name>
  <!--其他端口和地址都引用此host,所以必须配置,resource manager可以与namenode分离-->
    <value>QT-H-0117</value>
</property> 
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce.shuffle</value>
<description>此项目不配置,报错java.lang.IllegalStateException: Invalid shuffle port number -1 returned</description>
  </property>
 
5)配置mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        <description>classic,yarn,local</description>
    </property>
</configuration>


6)配置slaves: namenode和resourceManager特有datanode可以不配置
QT-H-0118
QT-H-0119


四 格式化
/bin/hdfs namenode -format

五 启动
/sbin/start-hfs.sh
/sbin/start-yarn.sh


六 验证,在namenode上
http://10.10.160.150:8088/ resourcemanager管理页面
http://10.10.160.150:50070/

七 本地库安装
操作系统:CentOS-6.2-x86_64-minimal.iso

yum install lrzsz vim
yum install make cmake zlib-devel openssl-devel gcc gcc+ gcc-c++
protobuf自定义安装(hadoop2.1的版本必须使用2.5),protobuf-2.5.0.tar.gz

编译
在目标64位操作系统上重新编译源码
mvn package -Pdist,native -DskipTests -Dtar

替换文件
${hadoop_home}/lib/native
下面的4个文件,软连接不用动
libhadoop.a
libhadoop.so.1.0.0
libhdfs.a
libhdfs.so.0.0.0
libhadoop.so -> libhadoop.so.1.0.0
libhdfs.so -> libhdfs.so.0.0.0
libhadoop在源码编译的目录¥${hadoop_home_src}/hadoop-common-project/hadoop-common/target/native/target/usr/local/lib
libhdfs在源码编译的目录¥${hadoop_home_src}/hadoop-hdfs-project/hadoop-hdfs/target/native/target/usr/local/lib


tips:
本地库安装方法
glibc版本不一致
http://blog.csdn.net/jiedushi/article/details/7496327
重新编译
http://www.jm47.com/g/60913.htm

Hadoop 新 MapReduce 框架 Yarn 详解
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/#_3.1_hadoop_0.23.0

【附加阅读】
http://blog.csdn.net/bxyz1203/article/details/8087233


【失败案例,可以继续研究】
其他 ubuntu安装资料
1)安装protobuf2.5
默认hadoop-2.1-beta版本里默认不带64位的本地库,只有32位的,所以需要自行编译
首先安装protobuf-2.5,否则报错[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.1.0-beta:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: 'protoc --version' did not return a version -> [Help 1]
ubuntu目前默认自带2.4.1,无法安装
apt-get install protobuf-compiler

或者自行编译安装
http://blog.csdn.net/xocoder/article/details/9155901
下载protobuf
下载地址:http://code.google.com/p/protobuf/downloads/list
2)安装zlib
apt-get install zlib1g-dev

猜你喜欢

转载自phl.iteye.com/blog/1983998