zoukankan      html  css  js  c++  java
  • centos6.8安装单机hadoop2.7.2

    Hadoop系列之(一):Hadoop单机部署 1. Hadoop介绍 Hadoop是一个能够对海量数据进行分布式处理的系统架构。 Hadoop框架的核心是:HDFS和MapReduce。 HDFS分布式文件系统为海量的数据提供了存储, MapReduce分布式处理框架为海量的数据提供了计算。 2. Hadoop安装 2.1 建立hadoop用户 增加hadoop用户 a.以root身份登录,添加”hadoop”用户 useradd -m hadoop -s /bin/bash 密码输入两次,笔者使用”hadoop”作为密码,比较好记忆。这样,一个用户名为hadoop, 密码也是hadoop的用户就添加好了。 b.可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题 vim /etc/sudoers 找到 root ALL=(ALL) ALL 这行 增加一行: hadoop ALL=(ALL) NOPASSWD:ALL 安装java Hadoop是使用JAVA写的,所以需要先安装JAVA环境。 Linux安装JDK完整步骤 1、检查一下系统中的jdk版本 [root@localhost software]# java -version 显示: openjdk version "1.8.0_102" OpenJDK Runtime Environment (build 1.8.0_102-b14) OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode) 2、检测jdk安装包 [root@localhost software]# rpm -qa | grep java 显示: java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64 python-javapackages-3.4.1-11.el7.noarch tzdata-java-2016g-2.el7.noarch javapackages-tools-3.4.1-11.el7.noarch java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64 java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 3、卸载openjdk [root@localhost software]# rpm -e --nodeps tzdata-java-2016g-2.el7.noarch [root@localhost software]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64 [root@localhost software]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64 [root@localhost software]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64 [root@localhost software]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 或者使用 [root@localhost jvm]# yum remove *openjdk* 之后再次输入rpm -qa | grep java 查看卸载情况: [root@localhost software]# rpm -qa | grep java python-javapackages-3.4.1-11.el7.noarch javapackages-tools-3.4.1-11.el7.noarch 4、安装新的jdk 首先到jdk官网上下载你想要的jdk版本,下载完成之后将需要安装的jdk安装包放到Linux系统指定的文件夹下,并且命令进入该文件夹下: [root@localhost software]# ll total 252664 -rw-r--r--. 1 root root 11830603 Jun 9 06:43 alibaba-rocketmq-3.2.6.tar.gz -rw-r--r--. 1 root root 43399561 Jun 9 06:42 apache-activemq-5.11.1-bin.tar.gz -rwxrw-rw-. 1 root root 185540433 Apr 21 09:06 jdk-8u131-linux-x64.tar.gz -rw-r--r--. 1 root root 1547695 Jun 9 06:44 redis-3.2.9.tar.gz -rw-r--r--. 1 root root 16402010 Jun 9 06:40 zookeeper-3.4.5.tar.gz 解压 jdk-8u131-linux-x64.tar.gz安装包 [root@localhost software]# mkdir -p /usr/lib/jvm [root@localhost software]# tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm 5、设置环境变量 [root@localhost software]# vim /etc/profile 在最前面添加: export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH 6、执行profile文件 [root@localhost software]# source /etc/profile 这样可以使配置不用重启即可立即生效。 7、检查新安装的jdk [root@localhost software]# java -version 显示: java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) 到此为止,整个安装过程结束。 2.2 需要ssh和rsync Linux系统一般都已经默认安装了,如果没有,yum安装。 2.3 下载Hadoop 从官网下载Hadoop最新版2.7.2 # wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz 或者上传到:/home/hadoop目录下 将hadoop解压到/app/下 # cd /home/hadoop/ # tar -zxvf hadoop-2.7.2.tar.gz sudo mv hadoop-2.7.2 /app/ 2.4 设置环境变量 设置JAVA的环境变量,JAVA_HOME是JDK的位置 # sudo vim /etc/profile HADOOP_HOME=/app/hadoop-2.7.2 export HADOOP_HOME export PATH=$PATH:$HADOOP_HOME/bin让设置生效 # source /etc/profile 设置Hadoop的JAVA_HOME # cd /app/hadoop-2.7.2/ # vim etc/hadoop/hadoop-env.sh export JAVA_HOME=/app/jdk1.8.0_121 到此,Hadoop的安装就算完成了,接下来进行部署和使用。 hadoop version 3. 单机部署 Hadoop部署方式分三种,Standalone mode、Pseudo-Distributed mode、Cluster mode,其中前两种都是在单机部署。 3.1 standalone mode(本地单独模式) 这种模式,仅1个节点运行1个java进程,主要用于调试。 3.1.1 在Hadoop的安装目录下,创建input目录 # mkdir input 3.1.2 拷贝input文件到input目录下 # cp etc/hadoop/*.xml input 3.1.3 执行Hadoop job # hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+' 上面的job是使用hadoop自带的样例,在input中统计含有dfs的字符串。 3.1.4 确认执行结果 # cat output/* 3.1.5 问题点 WARN io.ReadaheadPool: Failed readahead on ifile EBADF: Bad file descriptor 如果出现上面的警告,是因为快速读取文件的时候,文件被关闭引起,也可能是其他bug导致,此处忽略。 3.2 pseudo-distributed mode(伪分布模式) 这种模式是,1个节点上运行,HDFS daemon的 NameNode 和 DataNode、YARN daemon的 ResourceManger 和 NodeManager,分别启动单独的java进程,主要用于调试。 3.2.1 修改设定文件 # vim etc/hadoop/core-site.xml fs.defaultFS hdfs://localhost:9000 # vim etc/hadoop/hdfs-site.xml dfs.replication 1 3.2.2 设定本机的无密码ssh登陆 # ssh-keygen -t rsa # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 修改authorized_keys文件的权限:chmod 600 ~/.ssh/authorized_keys ssh localhost 3.2.3 执行Hadoop job MapReduce v2 叫做YARN,下面分别操作一下这两种job 3.2.4 执行MapReduce job 3.2.4.1 格式化文件系统 # hdfs namenode -format 3.2.4.2 启动名称节点和数据节点后台进程 # sbin/start-dfs.sh 在localhost启动一个1个NameNode和1个DataNode,在0.0.0.0启动第二个NameNode 3.2.4.3 确认 # jps 3.2.4.4 访问NameNode的web页面 http://localhost:50070/ 关防火墙 临时关闭:sudo service iptables stop 永久关闭:sudo chkconfig iptables off 3.2.4.5 创建HDFS # hdfs dfs -mkdir /user # hdfs dfs -mkdir /user/test 3.2.4.6 拷贝input文件到HDFS目录下 # hdfs dfs -put etc/hadoop /user/test/input 确认,查看 # hadoop fs -ls /user/test/input 3.2.4.7 执行Hadoop job # hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep /user/test/input output 'dfs[a-z.]+' 3.2.4.8 确认执行结果 # hdfs dfs -cat output/* 或者从HDFS拷贝到本地查看 # bin/hdfs dfs -get output output # cat output/* 3.2.4.9 停止daemon # sbin/stop-dfs.sh 3.2.5 执行YARN job MapReduce V2框架叫YARN 3.2.5.1 修改设定文件 # cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml # vi etc/hadoop/mapred-site.xml mapreduce.framework.name yarn # vi etc/hadoop/yarn-site.xml yarn.nodemanager.aux-services mapreduce_shuffle 3.2.5.2 启动ResourceManger和NodeManager后台进程 # sbin/start-yarn.sh 3.2.5.3 确认 # jps 3.2.5.4 访问ResourceManger的web页面 http://localhost:8088/ 3.2.5.5 执行hadoop job # hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep /user/test/input output 'dfs[a-z.]+' 3.2.5.6 确认执行结果 # hdfs dfs -cat output/* 执行结果和MapReduce job相同 3.2.5.7 停止daemon # sbin/stop-yarn.sh 3.2.5.8 问题点 1. 单节点测试情况下,同样的input,时间上YARN比MapReduce好像慢很多,查看日志发现DataNode上GC发生频率较高,可能是测试用VM配置比较低有关。 2. 出现下面警告,是因为没有启动job history server java.io.IOException: java.net.ConnectException: Call From test166/10.86.255.166 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: Connection refused; 启动jobhistory daemon # sbin/mr-jobhistory-daemon.sh start historyserver 确认 # jps 访问Job History Server的web页面 http://localhost:19888/ 3. 出现下面警告,DataNode日志中有错误,重启服务后恢复 java.io.IOException: java.io.IOException: Unknown Job job_1451384977088_0005 3.3 启动/停止 也可以用下面的启动/停止命令,等同于start/stop-dfs.sh + start/stop-yarn.sh # sbin/start-all.sh # sbin/stop-all.sh 3.4 日志 日志在Hadoop安装路径下的logs目录下 4、后记 单机部署主要是为了调试用,生产环境上一般是集群部署,接下来会进行介绍。
  • 相关阅读:
    jfinal的configPlugin基本配置代码
    jfinal的maven配置
    access denied XXXXXXXXXXXX
    常见排序算法小结
    String、StringBuffer与StringBuilder之间区别
    进程间的通信方式
    从右上角到左下角沿反对角线打印方阵中的元素
    快乐数问题
    数组循环移位问题
    HTTP协议报文格式
  • 原文地址:https://www.cnblogs.com/yasepix/p/10601124.html
Copyright © 2011-2022 走看看