Hadoop和Hive的实践应用

本文及以后的文章将介绍记录Hadoop和hive在大日志分析中的应用,文章只介绍重点和容易搞错的细节,其他细节可以到官网或google查询。

hadoop安装:

1,配置/etc/hosts中ip和nodename的对应关系
      ssh无密码连接,ssh-keygen -t rsa
      cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
      在master和salve上都生产authorized_keys合并成一个authorized_keys后分发到各个服务器的.ssh下,设置为当前用户可读执  行权限(755)
      ssh nodename1各各服务器间测试通过,需要手动ssh一遍,第一次回提示(y/N),通过即可。
  2,安装jdk1.6
     下载hadoop-0.20.203.0,解压修改配置conf/core-site.xml
  <property>
   <name>hadoop.tmp.dir</name>
   <value>/home/hadoopdata/tmp</value>
   <description>A base for other temporary directories.</description>
 </property>
 <property>
   <name>fs.default.name</name>
   <value>hdfs://tmg200:9102</value>
 </property>

配置hdfs-site.xml
 <property>
    <name>dfs.name.dir</name>
    <value>/home/hadoopdata/hdfs</value>
 </property>
 <property>
    <name>dfs.data.dir</name>
    <value>/home/hadoopdata/hdfsdata</value>
 </property>
 <property>
  <name>dfs.replication</name>
  <value>1</value>
 </property>

配置mapred-site.xml
  <property>
   <name>mapred.job.tracker</name>
   <value>tmg200:9101</value>
 </property>
 <property>
   <name>dfs.hosts.exclude</name>
   <value>excludes</value>
 </property>

配置masters,slaves加入namenode和datanode的nodename
  配置hadoop-env.sh中添加

export HADOOP_HOME=/usr/local/hadoop-0.20.203.0
     export PATH=$PATH:$HADOOP_HOME/bin
     export JAVA_HOME=/usr/local/jdk1.6.0_25
     export HADOOP_NAMENODE_OPTS="-XX:+UseParallelGC ${HADOOP_NAMENODE_OPTS}"

配置好后将其分发到各节点相同路径的目录下

3,启动停止hadoop及hdfs文件管理的命令
   启动 bin/start-all.sh
   停止bin/stop-all.sh
   启动后可以通过以下两个页面查看节点状况和job状况
   **.**.200:50070/dfshealth.jsp
    **.**.200:50030/jobtracker.jsp
    已可以通过在namenode上执行jps查看启动的进程

可以通过bin/hadoop dfs -lsr / 查看hdfs下所有文件和目录

bin/hadoop dfs -put conf/core-site.xml  test.xml把core-site.xml放到hdfs上去
     可以通过bin/hadoop dfs -mkdir testdir 可以创建文件夹等等和linux文件管理命令基本一致

hadoop安装中常见问题处理:

1, 启动hadoop

The processing instruction target matching "[xX][mM][lL]" is not allowed
      处理
         题主要是因为xml文件不能解析,.XML文件不正确,检查core-site.xml 中多出一空行, 把该行删除,保证<?xml version="1.0"      encoding="UTF-8"?> 前无空格即可
  2, bin/hadoop dfs -ls /   
       INFO ipc.Client: Retrying connect to server: /219.239.88.200:9000. Already tried 0 time(s). 
    处理:
        找到core-site.xml中hadoop.tmp.dir 配置文件夹hadoopdata,执行chown -R tmg:tmg hadoopdata
 重新bin/hadoop namenode -format,重启服务,不行在节点执行bin/hadoop datanode -format
   3, bin/hadoop dfs -mkdir testdir
        mkdir: org.apache.hadoop.security.AccessControlException: Permission denied: user=tmg, access=WRITE, inode="user":root:supergroup:rwxr-xr-x
     处理:
        root用户下执行 bin/hadoop dfs -chown -R tmg:tmg /
  4, bin/hadoop dfs -put conf/core-site.xml testdir
    WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/tmg/testdir/core-site.xml could only be replicated to 0 nodes, instead of 1

处理:
         把safemode置于off状态:hadoop dfsadmin -safemode leave
        关闭防火墙包括datanode : /etc/init.d/iptables stop
         删除tmp中有关hadoop以及jetty文件,重新格式化hadoop dfs
  5 ,namenode ,datanode不能启动处理,data等配置中配置的文件存储位置保证目录下用户有写权限

bin/hadoop namenode -format
         data节点上执行: bin/hadoop datanode -format,重启服务

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/c91f82fc76d441aa010d770b32e44cf5.html