Hadoop测试环境安装记录
发布日期:2021-11-04 22:04:12 浏览次数:6 分类:技术文章

本文共 9781 字,大约阅读时间需要 32 分钟。

测试机:10.1.1.1
1、测试环境勘查
1)硬件
a、CPU
      命令:
cat /proc/cpuinfo
      命令:
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
        命令:
cat /proc/cpuinfo | grep physical.id | uniq -c
        命令:
getconf LONG_BIT
        命令:
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
      结果:1*4核 2GHZ 支持64位
b、内存
      命令:
cat /proc/meminfo
      结果:4GB
c、硬盘
     命令:dmesg | grep hd
     结果:
d、网卡
      命令:
dmesg | grep -i eth
      结果:2块1000M
e、机器型号
      命令:
dmidecode | grep "Product Name"
      结果:1950
e、分区情况
      命令:fdisk -l
      结果:
      命令:df -h
      结果:
2)操作系统
a、内核版本
      命令:
uname -a
      结果:2.6.18-194.e15
b、发行版本
      命令:
cat /etc/issue
        结果:CentOS 5.5
2、安装配置任务
1)jdk安装
a、 版本:jdk1.7.0_17 linux 64位,安装包:jdk-7u17-linux-x64.gz
b、安装目录:/usr/java/jdk1.7.0_17
c、安装步骤
     a)将jdk-7u17-linux-x64.gz复制到/usr/java/
     b)
tar zxvf jdk-7u17-linux-x64.gz
     c)删除jdk-7u17-linux-x64.gz,释放空间
          rm jdk-7u17-linux-x64.gz
d、设置java环境变量
     a)打开profile
          #vi /etc/profile
     b)添加java环境变量
         export JAVA_HOME=/usr/java/jdk1.7.0_17
         export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
         export PATH=$PATH:$JAVA_HOME/bin
    
 c)使配置生效
         #source /etc/profile
     d)更新 alternatives,选择JDK版本
         #update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_17/bin/java 60
#update-alternatives --config java
     e)进入 /usr/bin/目录
         #cd /usr/bin
         #ln -s -f /usr/java/jdk1.7.0_17/jre/bin/java
         #ln -s -f /usr/java/jdk1.7.0_17/bin/javac
     f)验证
         #java -version
         
2)hadoop安装
a、版本:hadoop-0.20.2-cdh3u3
b、安装目录:/usr/local/hadoop-0.20.2-cdh3u3
c、安装步骤
     a)将 hadoop-0.20.2-cdh3u3 复制到/usr/local/
     b)
tar zxvf hadoop-0.20.2-cdh3u3.tar.gz
     c)删除hadoop-0.20.2-cdh3u3.tar.gz,释放空间
          rm hadoop-0.20.2-cdh3u3.tar.gz  
d、设置hadoop环境变量
    a)打开profile
          #vi /etc/profile
     b)添加java环境变量
         export HADOOP_HOME=/usr/local/hadoop-0.20.2-cdh3u3
         export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
         export PATH=$PATH:$HADOOP_HOME/bin
    
 c)使配置生效
         #source /etc/profile   
3)ant安装
a、版本:apache-ant-1.8.3-bin.tar.gz
b、安装目录:/usr/local/apache-ant-1.8.3
c、安装步骤
     a)将  apache-ant-1.8.3-bin.tar.gz  复制到/usr/local/
     b)
tar zxvf apache-ant-1.8.3-bin.tar.gz
     c)删除 apache-ant-1.8.3-bin.tar.gz ,释放空间
d、配置环境变量
    a) #vi /etc/profile
    b)添加
         export ANT_HOME=/usr/local/apache-ant-1.8.3
         export PATH=$PATH:$ANT_HOME/bin
    
c)使配置生效
         #source /etc/profile 
e、验证 ant -version
4)lzo安装
a、安装包说明
      lzo-2.06.tar.gz------------------------------lzo压缩算法
      kevinweil-hadoop-lzo-6bb1b7f.tar.gz----hadoop调用lzo的native库和jar
      lzop-1.03.tar.gz----------------------------linux lzo工具
b、安装步骤
      a)安装gcc
            yum -y install gcc gcc-c++ autoconf automake
      b)安装lzo
            将 lzo-2.06.tar.gz复制到/usr/local
            解压:
tar zxvf  lzo-2.06.tar.gz
            编译:cd lzo-2.06
                      ./configure --enable-shared
                      make
                      make install
                      拷贝/usr/local/lib目录下的lzo库文件到/usr/lib(32位平台),或/usr/lib64(64位平台)
                                   cp /usr/local/lib/liblzo2.* /usr/lib64/
      
c)编译安装 hadoop lzo 本地库及jar 
           将 kevinweil-hadoop-lzo-6bb1b7f.tar.gz 复制到/usr/local             
           解压:tar zxvf kevinweil-hadoop-lzo-6bb1b7f.tar.gz          
           编译:cd  kevinweil-hadoop-lzo-6bb1b7f
                      export CFLAGS=-m64
                      export CXXFLAGS=-m64
                      export ANT_OPTS="-Dhttp.proxyHost=221.6.15.156 -Dhttp.proxyPort=82"
                      ant compile-native tar
                      把编码/解码器以及native库拷贝到$HADOOP_HOME/lib目录下:
                                   cp build/hadoop-lzo-0.4.15.jar $HADOOP_HOME/lib
                                   cp build/native/Linux-amd64-64/lib/* $HADOOP_HOME/lib/native/Linux-amd64-64/
                      native库拷贝到/usr/lib64/
                                   cp build/native/Linux-amd64-64/lib/* /usr/lib64/
           问题:在jdk1.7.0下可能无法编译成功。
                      由于需要访问repo2.maven.org,需要设置代理
export ANT_OPTS="-Dhttp.proxyHost=
221.6.15.156
 -Dhttp.proxyPort=82"
                       http代理主机可以从网上查找
      c)安装 lzop
           将  lzop-1.03.tar.gz 复制到/usr/local
           解压:tar -zxvf lzop-1.03.tar.gz            
           编译:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
                      cd lzop-1.03
                      ./configure
              make
                      make install
            命令:
                     
压缩 lzop -9  /usr/local/soft/lzo/test.log
             解压 lzop -d  /usr/local/soft/lzo/test.log.lzo
             测试文件完整性  lzop -t /usr/local/soft/lzo/test.log
3、hadoop配置任务
1)linux系统配置
a、主机名:hadooptest,注意主机名不能有下划线,否则启动hadoop会报错
     参考命令:   
     修改hostname:#hostname  hadooptest  
     修改hostname:#vi /etc/sysconfig/network
                                hostname=hadooptest
     增加host:         #vi /etc/hosts
                                 
10.1.1.1 hadooptest hadooptest
     重启网卡:          #/etc/init.d/network restart
b、vi /etc/hosts
     
10.1.1.1 hadoop_test hadoop_test
     删除127.0.0.1的映射
c、修改openfiles为最大
     查看: ulimit -a
     修改: echo 65535 > /proc/sys/fs/file-max 
                vi /etc/security/limits.conf
                     增加 * - nofile  65535  
                vi /etc/sysctl.conf
                     增加fs.file-max =  65535   
d、增加hadoop用户
      groupadd hadoop
      useradd hadoop -G hadoop
e、创建hadoop使用的目录
    #mkdir  /data0/hadoop
    #mkdir  /data0/hadoop/data
    #mkdir  /data0/hadoop/data/hdfs
    #mkdir  /data0/hadoop/data/mapred
    #mkdir  /data0/hadoop/logs
    #mkdir  /data0/hadoop/tmp
f、修改目录权限
    #chown hadoop:hadoop  /usr/local/hadoop-0.20.2-cdh3u3  -R
    #chown hadoop:hadoop /data0/hadoop -R
g、配置ssh
   su - hadoop
   ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
   cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
2)hadoop伪分布模式配置
a、${HADOOP_HOME}/conf/hadoop-env.sh
      export JAVA_HOME=/usr/java/jdk1.7.0_17
      export HADOOP_LOG_DIR=/data0/hadoop/logs
b、${HADOOP_HOME}/conf/core-site.xml
     <?xml version="1.0"?>
     <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
     <configuration>
         <!--=== global properties ===-->
         <property>
             <name>hadoop.tmp.dir</name>
             <value>/data0/hadoop/tmp</value>
             <description>A base for other temporary directories.</description>
         </property>
         <!--=== logging properties ===-->
         <property>
             <name>hadoop.logfile.size</name>
             <value>10000000</value>
             <description>The max size of each log file</description>
         </property>
         <property>
             <name>hadoop.logfile.count</name>
             <value>10</value>
             <description>The max number of log files</description>
         </property>
 <!--=== file system properties ===-->
 <property>
             <name>fs.default.name</name>
             <value>hdfs://hadooptest:9000/</value>
 </property>
 <!-- recycle -->
 <property>
             <name>fs.trash.interval</name>
             <value>4320</value>
             <description>Number of minutes between trash checkpoints. If zero, the trash feature is disabled.</description>
 </property>
 <!-- secondarynamenode-->
 <property>
             <name>fs.checkpoint.dir</name>
             <value>/data0/hadoop/data/hdfs/namesecondary</value>
         </property>
         <property>
             <name>fs.checkpoint.period</name>
        <value>1800</value>
             <description>The number of seconds between two periodic checkpoints.</description>
         </property>
         <property>
             <name>fs.checkpoint.size</name>
        <value>33554432</value>
         </property>
     </configuration>
c、${HADOOP_HOME}/conf/hdfs-site.xml
     <?xml version="1.0"?>
     <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
     <configuration>
         <!-- namenode -->
 <property>
             <name>dfs.name.dir</name>
             <value>/data0/hadoop/data/hdfs/namenode</value>
         </property>
 <!-- datanode -->
 <property>
             <name>dfs.data.dir</name>
             <value>/data0/hadoop/data/hdfs/datanode</value>
 </property>
 <property>
             <name>dfs.datanode.du.reserved</name>
        <value>1073741824</value>
             <description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
             </description>
         </property>
         <!-- permissions-->
 <property>
             <name>dfs.permissions</name>
             <value>false</value>
 </property> 
         <property>
             <name>dfs.replication</name>
             <value>1</value>
 </property>
     </configuration>
d、${HADOOP_HOME}/conf/mapred-site.xml
     <?xml version="1.0"?>
     <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
     <configuration>
         <property>
             <name>mapred.system.dir</name>
             <value>/data0/hadoop/data/mapred/system</value>
 </property>
 <property> 
             <name>mapred.local.dir</name> 
             <value>/data0/hadoop/data/mapred/local</value> 
 </property> 
 <property>
<name>mapred.job.tracker</name>
<value>hadooptest:9001</value>
 </property>
 <property>
<name>mapred.job.reuse.jvm.num.tasks</name>
<value>-1</value>
 </property>
 <!-- max map/reduce -->
 <property>
             <name>mapred.tasktracker.map.tasks.maximum</name>
             <value>1</value>
             <final>true</final>
         </property>  
 <property>
             <name>mapred.tasktracker.reduce.tasks.maximum</name>
             <value>1</value>
             <final>true</final>
 </property>
      </configuration>
e、${HADOOP_HOME}/conf/masters
      
10.1.1.1
f、${HADOOP_HOME}/conf/slaves
      
10.1.1.1
g、增加lzo的支持
      a)在core-site.xml中增加
            <!--=== i/o properties ===-->
    <!-- config lzo-->
    <property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
    <description>A list of the compression codec classes that can be used for compression/decompression.
                   </description>
    </property>
    <property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
    </property>
       b) map输出启用lzo,在mapred-site.xml中增加
    <!--about lzo -->
    <property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
    </property>
    <property>
<name>mapred.child.env</name>
<value>JAVA_LIBRARY_PATH=/usr/local/hadoop-0.20.2-cdh3u3/lib/native/Linux-amd64-64</value>
    </property>
    <!-- map out use lzo-->
    <property>
<name>mapreduce.map.output.compress.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
    </property>
4、验证hadoop配置
a、首先需要Format namenode
      在namenode节点运行:hadoop namenode -format
b、启动hadoop各组件
     a) 启动:
      方法1:start-all.sh   需要ssh支持,需要配置masters和slaves文件
      方法2:
                 hadoop-daemon.sh start namenode &
                 hadoop-daemon.sh start datanode &
                 hadoop-daemon.sh start jobtracker &
                 hadoop-daemon.sh start tasktracker &
     b)停止:
      方法1: stop-all.sh 与start-all.sh对应
      方法2:
                 hadoop-daemon.sh  stop  namenode &
                 
hadoop-daemon.sh  stop  datanode &
                 
hadoop-daemon.sh  stop  jobtracker &
                 
hadoop-daemon.sh  stop  tasktracker &
c、http://hadooptest:50070/dfshealth.jsp
     http://hadooptest:50030/
d、运行WordCount示例
     
hadoop fs -mkdir hdfs://hadooptest:9000/input
     hadoop fs -copyFromLocal /usr/local/hadoop-0.20.2-cdh3u3/conf/* hdfs://hadooptest:9000/input
     hadoop jar /usr/local/hadoop-0.20.2-cdh3u3/hadoop-examples-0.20.2-cdh3u3.jar wordcount                       
                                                                                  hdfs://hadooptest:9000/
input 
hdfs://hadooptest:9000/
output
     hadoop fs -cat hdfs://hadooptest:9000/output/*
5、遇到的问题
     a、
     问题:由于主机名带下划线'_'导致namenode不能启动
     现象:查看namenode的日志,抛出java.io.IOException: Incomplete HDFS URI, no host: hdfs://hadoop_test:9000
     解决:修改主机名为hadooptest
     b、
     问题:hadoop fs -ls  列出的是本机目录而非HDFS上的目录
     解决:vi /etc/profile增加export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
6、测试集群信息 
     host:10.1.1.1 hadooptest
     namenode:10.1.1.1
:9000
     jobtracker:10.1.1.1
:9001
   

转载地址:https://blog.csdn.net/xiaochawan/article/details/8733094 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:使用ffmpeg可以生成视频截图
下一篇:mahout in action[中文] 第2章 推荐系统简介

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年03月26日 08时41分50秒