linux上安装配置 hadoop

(看完这篇后可以去看和此对应的hive安装配置:https://blog.csdn.net/u013232219/article/details/104431080

在这个地址去下载 hadoop(国内的速度快)http://mirror.bit.edu.cn/apache/hadoop/common/
下载好后,将安装包上传到服务器:linux上可通过rz命令进行上传,或者通过sftp上传
上传后解压缩: tar -zxvf hadoop-3.1.3.tar.gz
进行伪分布式/单机版配置:

这是我的 etc/profile文件里的配置,可以参考:

{


# set java_home enviroment
export JAVA_HOME=/usr/java/jdk1.8.0_211
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:/usr/local/bin/go
export GOPATH=/root/go
# hive
export HIVE_HOME=/usr/hadoop/apache-hive-3.1.2-bin
export PATH=$PATH:$HIVE_HOME/bin
# hadoop
export HADOOP_HOME=/usr/hadoop/hadoop-3.1.3
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib
# hbase
export HBASE_HOME=/usr/hbase/hbase-2.2.3
export PATH="$HBASE_HOME/bin:$PATH"
 

}

执行下面命令让配置立刻生效,注意:中间有空格

source   /etc/profile


配置 $HADOOP_HOME/etc/hadoop/core-site.xml


<configuration>
    <!--指定文件系统为HDFS及NameNode主节点运行的机器端口和ip地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <!--本地临时存储目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop-3.1.3/data/tmpData</value>
    </property>
</configuration>

配置 $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
    <!-- hdfs副本数量-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop-3.1.3/data/tmpData/dfs/name</value>
    </property>
    <property>
        <name>dfs.namenode.data.dir</name>
        <value>file:/home/hadoop/hadoop-3.1.3/data/tmpData/dfs/data</value>
    </property>
    <!-- 开启权限,远程客户端可以通过脚本给hdfs创建目录 -->
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.datanode.http.address</name>
        <value>0.0.0.0:50070</value>
    </property>
</configuration>
配置 $HADOOP_HOME/etc/hadoop/hadoopenv.sh,
配置 $HADOOP_HOME/etc/hadoop/mapred-env.sh,
配置 $HADOOP_HOME/etc/hadoop/yarn-env.sh: 均设置JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_231

配置公钥
ssh-keygen -t rsa
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
启动hadoop
cd $HADOOP_HOME
#格式化namenode
bin/hadoop namenode -format

注意:有的人如果是直接复制粘贴进配置文件的,格式化时可能报 编码错误,删掉直接在配置文件里写就可以

#启动
sbin/start-all.sh

启动时可能会报错:ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
按大括号里内容调整配置:
{
    将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

    HDFS_NAMENODE_USER=root

    HDFS_DATANODE_USER=root

    HDFS_SECONDARYNAMENODE_USER=root

    YARN_RESOURCEMANAGER_USER=root

    YARN_NODEMANAGER_USER=root


    start-yarn.sh,stop-yarn.sh顶部也需添加以下

    YARN_RESOURCEMANAGER_USER=root

    HADOOP_SECURE_DN_USER=yarn

    YARN_NODEMANAGER_USER=root
}

启动时可能会警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
按大括号里内容调整配置:
{
    可能下面三种之一原因造成
    原因一:是版本 默认 64位 而 系统是  32位,要自己验证一下
        进入:/usr/local/hadoop-2.5.2/lib/native
        用ldd命令查看依赖库:ldd libhadoop.so.1.0.0
        提示:libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
        是64位,所以并不是版本的问题
        
    原因二:是依赖库的问题

        进入:/usr/local/hadoop-2.5.2/lib/native
        用ldd命令查看依赖库:ldd libhadoop.so.1.0.0
        如果提示类似信息:./libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by ./libhadoop.so.1.0.0)
        可以看到依赖的都是/lib64/的动态库,所以不是64位/32位问题。但是看到报错,GLIBC_2.25找不到,现在检查系统的glibc库
        输入命令:ldd --version
        会输出如下信息:

        ldd (GNU libc) 2.17
        Copyright (C) 2012 Free Software Foundation, Inc.
        This is free software; see the source for copying conditions.  There is NO
        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
        Written by Roland McGrath and Ulrich Drepper.
        统预装的glibc库是2.12版本,而hadoop期望是2.14版本,所以打印警告信息。
        现在有两个办法,重新编译glibc.2.25版本,安装后专门给hadoop使用,这个至于怎么编译安装自己百度哈。
        可以直接确认下glibc 目前支持的版本,如下查询方法:
        输入命令:strings /lib64/libc.so.6|grep GLIBC
        
        GLIBC_2.2.5
        GLIBC_2.2.6
        GLIBC_2.3
        GLIBC_2.3.2
        GLIBC_2.3.3
        GLIBC_2.3.4
        GLIBC_2.4
        GLIBC_2.5
        GLIBC_2.6
        GLIBC_2.7
        GLIBC_2.8
        GLIBC_2.9
        GLIBC_2.10
        GLIBC_2.11
        GLIBC_2.12
        GLIBC_PRIVATE
        可以看到目前只支持到 2.25,但是提示一下,升级这个库是有风险的


        第二个办法直接在log4j日志中去除告警信息。在//usr/hadoop/hadoop-3.1.3/etc/hadoop/log4j.properties文件中添加

        log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR


        原因三 :环境配置的问题:

        在/etc/profile中,添加下面配置:

        export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
        export  HADOOP_HOME=/usr/hadoop/hadoop-3.1.3
        export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
        最后记得使配置生效:source /etc/profile

        并把相同配置添加到hadoop-env.sh文件末尾。

}


先停了上次启动的进程:  ./stop-all.sh
再进行启动:sbin/start-all.sh

输入命令  :  jps
可以看到如下提示:
[root@Aztec sbin]# jps
10800 SecondaryNameNode
12416 jar
10561 DataNode
11065 ResourceManager
28233 Bootstrap
27770 jar
11597 Jps
11229 NodeManager
10383 NameNode


可以看到namenode和datanode进程都已启动.至此,单机版hadoop已经安装并成功启动!

发布了27 篇原创文章 · 获赞 0 · 访问量 812

猜你喜欢

转载自blog.csdn.net/u013232219/article/details/104429007
今日推荐