本文及以后的文章将介绍记录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,重启服务