设为首页 收藏本站
查看: 2209|回复: 0

[经验分享] Hadoop实战安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-1-9 09:59:53 | 显示全部楼层 |阅读模式
环境:centos 6.4 X64
      192.168.2.20 Master
      192.168.2.21 Hadoop1
      192.168.2.22 Hadoop2      
准备工作:
   1、安装基本开发工具:(所有服务器)
      yum groupinstall "Development Tools" -y
   2、设置IP和hostname映射关系 (所有服务器)
      vi /etc/hosts  修改内容如下
      192.168.2.20 Master
      192.168.2.21 Hadoop1
      192.168.2.22 Hadoop2
      设置之后通过ping其他主机hostname来确保设置成功。
   3、添加hadoop用户来配置管理hadoop  (所有服务器)
      groupadd hadoop
      useradd -g hadoop hadoop
      设置密码:
      passwd hadoop
      将hadoop用户添加到sudo列表:
      vi /etc/sudoers 添加如下内容:
      hadoop  ALL=(ALL)      ALL
   4、设置各主机间hadoop用户无密码登录
      su - hadoop
      ssh-keygen –t rsa (对提示采取默认设置,回车即可)   
      ssh-copy-id - i .ssh/id_rsa.pub hadoop@192.168.0.21
      最起码要实现Master到两个slave上无密码登录
   5、同步所有服务器时间,各服务器时间相差不能超过30s。 (所有服务器)
      crontab -e
      */5 * * * * /usr/sbin/ntpdate 0.centos.pool.ntp.org
   6、关闭所有服务器的防火墙
      service iptables stop
      chkconfig iptables off
   7、安装JDK
      安装路径:/usr/java
      下载jdk-7u51-linux-x64.rpm
       cd /usr/java
       wget http://download.oracle.com/otn-p ... 5127de1651978bf9812
       rpm -ivh jdk-7u51-linux-x64.rpm
       ln -s jdk1.7.0_51 jdk 设置软连接,方便环境变量配置
       设置环境变量,能够让系统引用:
       cd ~
       vi .bash_profile 添加如下内容:
       export JAVA_HOME=/usr/java/jdk
       export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
       export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
       保存,读取系统环境变量
       source .bash_profile
       测试java环境变量:
       java -version  如果看到如下输出,则表示设置成功:
         java version "1.7.0_51"
         Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
         Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)        
安装hadoop-2.2.0
       切换到hadoop用户
       安装目录:/usr/local/hadoop
       cd /usr/local
       下载hadoop-2.20.0
       wget http://mirror.bit.edu.cn/apache/ ... hadoop-2.2.0.tar.gz
       tar xvf hadoop-2.2.0.tar.gz
       ln -s hadoop hadoop-2.2.0      
       添加环境变量:
       vim .bash_profile  添加如下内容
         export HADOOP_OPTS="-Djava.library.path=/usr/java/jdk/lib"
         export HADOOP_HOME=/usr/local/hadoop
         export CLASSPATH=.:$CLASSPATH:$HADOOP_HOME/native/lib
         export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME
       保存,source .bash_profie
       修改hadoop配置文件
       cd /hadoop/etc/hadoop
       vim hadoop-env.sh 为hadoop指定java库的位置,修改内容如下:
        export JAVA_HOME=/usr/java/jdk
       vim core-site.xml 添加内容如下:
        <configuration>
         <property>
           <name>fs.defaultFS</name>
             <value>hdfs://192.168.2.20:9000</value>    #指定HDFS的位置及端口
         </property>
         <property>
           <name>io.file.buffer.size</name>
             <value>131072</value>
         </property>
         <property>
          <name>hadoop.tmp.dir</name>
             <value>file:/dfs/tmp</value>               
          </property>
        </configuration>

        vim hdfs-site.xml
        <configuration>
        <property>
               <name>dfs.namenode.secondary.http-address</name>
               <value>192.168.2.20:9001</value>
        </property>
        <property>
               <name>dfs.data.dir</name>           #指定dfs目录,如果没有指定,name.dir和data.dir 的数据都放在core-site.xml中指定的tmp目录中
               <value>/data/dfs</value>
        </property>
         <property>
               <name>dfs.namenode.name.dir</name>
               <value>/data/dfs/name</value>
         </property>
         <property>
               <name>dfs.datanode.data.dir</name>
               <value>/data/dfs/data</value>
         </property>
         <property>
               <name>dfs.replication</name>
               <value>2</value>
         </property>
         <property>
               <name>dfs.webhdfs.enabled</name>
               <value>true</value>
         </property>
       </configuration>      
        vim yarn-site.xml
        <configuration>
         <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
         </property>
         <property>
          <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
          <value>org.apache.hadoop.mapred.ShuffleHandler</value>
         </property>
         <property>
          <name>yarn.resourcemanager.address</name>
          <value>192.168.2.20:8032</value>
         </property>
         <property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>192.168.2.20:8030</value>
         </property>
         <property>
          <name>yarn.resourcemanager.resource-tracker.address</name>
          <value>192.168.2.20:8031</value>
         </property>
         <property>
          <name>yarn.resourcemanager.admin.address</name>
          <value>192.168.2.20:8033</value>
         </property>
         <property>
          <name>yarn.resourcemanager.webapp.address</name>
          <value>192.168.2.20:8088</value>
         </property>
        </configuration>      
       vim slaves 配置集群的DataNode,添加如下内容:
        Hadoop1
        Hadoop2     
       配置结束,将hadoop这个目录cp到其他两台salve上;
       scp -r /usr/local/hadoop hadoop@Hadoop1:/usr/local/
       scp -r /usr/local/hadoop hadoop@Hadoop2:/usr/local/   
       cp结束后只需要在Master上进行一下操作
       进行HDFS格式化
       hadoop namenode -format
       格式化完成之后就可以启动HDFS了。
       cd /usr/local/hadoop/sbin
       ./start-dfs.sh
       启动完成后,可以使用jps命令,查看是否启动成功。如果有下面输出,表示启动成功。
        jps
       namenode
       secondnamenode
       ./start-yarn.sh      
安装Hbase      
       cd /home/hadoop
       下载Hbase-0.96.0-hadoop2-bin.tar.gz
       wget http://mirror.bit.edu.cn/apache/ ... -hadoop2-bin.tar.gz
       tar xvf hbase-0.96.0-hadoop2-bin.tar.gz               
       配置Hbase
       cd hbase-0.96.0-hadoop2/conf
       给Hbase设置java的lib路径
       vim hbase-ven.sh  修改内容如下
        export JAVA_HOME=/usr/java/jdk  
       vim /hbase-site.xml  添加如下内容
       <property>
         <name>hbase.rootdir</name>
           <value>hdfs://192.168.2.20:9000/hbase</value>
       </property>
       <property>
         <name>hbase.master</name>
           <value>hdfs://192.168.2.20:60000</value>
       </property>
       <property>
         <name>hbase.zookeeper.property.dataDir</name>
           <value>/dfs/data/zookeeper</value>
       </property>
       <property>
         <name>hbase.zookeeper.property.clientPort</name>
           <value>2181</value>
       </property>
       <property>
         <name>hbase.zookeeper.quorum</name>
           <value>Hadoop1,Hadoop2</value>
       </property>
       <property>
         <name>hbase.cluster.distributed</name>
           <value>true</value>
       </property>
       vim regionservers 添加内容如下:
        Hadoop1
        Hadoop2  
       Hbase配置基本完成,接下来同步Hbase的jar包,应为次版本的Hbase的jar包是基于hadoop-2.1.0的,我们使用的是hadoop-2.2.0,所以要同步jar包
       首先删除Hbase有关hadoop的jar包
       cd ../lib
       rm -rf hadoop*.jar
       复制hadoop的jar包到hbase-0.96.0-hadoop2/lib下
       find /usr/local/hadoop/share/hadoop -name "hadoop*.jar" | xargs -i cp {} /home/hadoop/hbase-0.96.0-hadoop2/lib/
       cp Hbase到另外两台slave上:
       scp -r /home/hadoop/hbase-0.96.0-hadoop2 hadoop@Hadoop1:/home/hadoop/
       scp -r /home/hadoop/hbase-0.96.0-hadoop2 hadoop@Hadoop1:/home/hadoop/  
       启动Hbase,在Master上操作
       cd /home/hadoop/hbase-0.96.0-hadoop2/bin
       ./start-hbase.sh
       如果启动成功,通过jps命令,可以看到
       HMaster
安装Hive
       下载hive-0.12.0
        cd /home/hadoop/
        wget http://mirror.bit.edu.cn/apache/ ... /hive-0.12.0.tar.gz
        tar xvf hive-0.12.0.tar.gz
        将hive添加到环境变量:
        vim /home/hadoop/.bash_profile 添加如下内容:
          export HIVE_HOME=/home/hadoop/hive-0.12.0
          export CLASSPATH=.:$CLASSPATH:$HIVE_HOME/lib
          export PATH=$PATH:$HIVE_HOME/bin
        配置hive
        cd hive-0.12.0
        vim hive-env.sh 指定hadoop的安装目录,如下
        HADOOP_HOME=/usr/local/hadoop
        vim hive-site.xml 配置hive,添加如下内容:
         <property>
           <name>hive.metastore.warehouse.dir</name>
             <value>hdfs://Master:9000/hive/warehousedir</value>   #指定warehouse位置
         </property>
         <property>
           <name>hive.exec.scratchdir</name>
             <value>hdfs://Master:9000/hive/scratchdir</value>     #指定scratchdir位置
         </property>
         <property>
           <name>mapred.child.java.opts</name>
             <value>-Xmx512M -Djava.library.path=/usr/java/jdk/lib</value>  #指定java库文件位置
         </property>
         <property>
           <name>hive.querylog.location</name>
             <value>/home/hadoop/hive-0.12.0/logs</value>           #指定日志文件位置
         </property>
         <property>
           <name>javax.jdo.option.ConnectionURL</name>
             <value>jdbc:mysql://192.168.2.20:3306/hiveMeta?createDatabaseIfNotExist=true</value> #指定存储源数据的mysql地址及端口
         </property>
         <property>
           <name>javax.jdo.option.ConnectionDriverName</name>       #指定hive和mysql连接的驱动文件
             <value>com.mysql.jdbc.Driver</value>
         </property>
         <property>
           <name>javax.jdo.option.ConnectionUserName</name>         #指定连接mysql时的用户名
             <value>hive</value>
         </property>
         <property>
           <name>javax.jdo.option.ConnectionPassword</name>         #指定连接mysql时的密码
             <value>hive</value>
         </property>
         <property>
           <name>hive.aux.jars.path</name>
             <value>file:///home/hadoop/hive-0.12.0/lib/hive-contrib-0.13.0-SNAPSHOT.jar,file:///home/hadoop/hive-0.12.0/lib/hive-hbase-handler-0
.13.0-SNAPSHOT.jar,file:///home/hadoop/hive-0.12.0/lib/protobuf-java-2.5.0.jar,file:///home/hadoop/hive-0.12.0/lib/hbase-client-0.96
.0-hadoop2.jar,file:///home/hadoop/hive-0.12.0/lib/hbase-common-0.96.0-hadoop2.jar,file:///home/hadoop/hive-0.12.0/lib/zookeeper-3.4
.5.jar,file:///home/hadoop/hive-0.12.0/lib/guava-11.0.2.jar</value>
        </property>
   同步jar包
     因为直接下载得到的hive是基于hadoop1.3和hbase0.94的,我们的hbse0.96是基于hadoop2.2的,所以我们必须先解决hive的hadoop版本问题,
     从官网下载的hive都是用1.x的版本编译的,因此我们需要自己下载源码来用hadoop2.X的版本重新编译hive,这个过程也很简单
     使用svn下载源码包
       cd /usr/local/src
       svn http://svn.apache.org/repos/asf/hive/trunk
     下载安装编译工具maven
       http://maven.apache.org/download.cgi
       tar xvf apache-maven-3.1.1-bin.tar.gz
       ln -s apache-maven-3.1.1 maven
     加入环境变量:
       vim /home/hadoop/.bash_profile  添加如下内容。
       #maven
       export MAVEN_HOME=/home/hadoop/maven
       export CLASSPATH=.:$CLASSPATH:$MAVEN_HOME/lib
       export PATH=$PATH:$MAVEN_HOME/bin
     开始编译:
       cd /usr/local/src/trunk
       mvn clean package -DskipTests -Phadoop-2
     编译好后的新jar包是存放在各个模块下的target的,这些新jar包的名字都叫hive-***-0.13.0-SNAPSHOT.jar,***为hive下的模块名,我们需要运行命令将其拷贝到hive-0.12.0/lib下。
       find /usr/local/src/trunk -name "hive*SNAPSHOT.jar"|xargs -i cp {} /home/hadoop/hive-0.12.0/lib
     拷贝完成后删除原lib下对应的所有的0.12版本的jar包
     同步hbase的版本
     到hive0.12.0/lib下,将hive-0.12.0/lib下hbase-0.94开头的那两个jar包删掉,然后从/home/hadoop/hbase-0.96.0-hadoop2/lib下hbase开头的包都拷贝过来。
       find /home/hadoop/hbase-0.96.0-hadoop/lib -name "hbase*.jar"|xargs -i cp {} ./
     基本的同步完成了,重点检查下zookeeper和protobuf的jar包是否和hbase保持一致,如果不一致,已hbase的为准提过到hive下即可。  
     由于我们采用本地mysql存储hive的源数据,所以要在本地安装mysql,并下载一个mysql的驱动包mysql-connector-java-3.1.12-bin.jar,放在hive的lib目录下     
       yum install mysql mysql-devele mysql-server -y
       service mysqld start      
     启动Hive
     hive --service metastore
     hive --service hiveserver     
     查看所有启动端口
     netstat -lntp
     Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:10000               0.0.0.0:*                   LISTEN      19145/java         
tcp        0      0 0.0.0.0:50070               0.0.0.0:*                   LISTEN      1646/java           
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                  
tcp        0      0 0.0.0.0:9083                0.0.0.0:*                   LISTEN      19015/java         
tcp        0      0 192.168.2.20:9000           0.0.0.0:*                   LISTEN      1646/java           
tcp        0      0 192.168.2.20:9001           0.0.0.0:*                   LISTEN      1823/java           
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      -                  
tcp        0      0 :::22                       :::*                        LISTEN      -                  
tcp        0      0 ::ffff:192.168.2.20:8088    :::*                        LISTEN      25621/java         
tcp        0      0 ::ffff:192.168.2.20:8030    :::*                        LISTEN      25621/java         
tcp        0      0 ::ffff:192.168.2.20:8031    :::*                        LISTEN      25621/java         
tcp        0      0 ::ffff:192.168.2.20:8032    :::*                        LISTEN      25621/java         
tcp        0      0 ::ffff:192.168.2.20:60000   :::*                        LISTEN      2159/java           
tcp        0      0 ::ffff:192.168.2.20:8033    :::*                        LISTEN      25621/java         
tcp        0      0 :::60010                    :::*                        LISTEN      2159/java                  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-40453-1-1.html 上篇帖子: hadoop2.5.1伪分布式部署 下篇帖子: hadoop hbase无法启动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表