(CentOS)hadoop环境搭建,及期间遇到的问题
(一)hadoop集群搭建准备,准备3台机器
192.168.80.100 hadoop
192.168.80.101 datanode1
192.168.80.102 datanode2
首先安装jdk 到/usr/local/jdk(具体就不说了),然后配置文件/etc/profile,添加如下
export JAVA_HOME=/usr/local/jdk export PATH=.:$JAVA_HOME/bin:$PATH然后输入$source /etc/profile立即生效$java -version验证一下就ok了。
(二)然后修改个机器的主机名和配置网络
$vi /etc/hosts 修改HOSTNAME=hadoop(datanode1,datanode2) $source /etc/hosts $vi /etc/sysconfig/network 添加三行 192.168.80.100 hadoop 192.168.80.101 datanode1 192.168.80.102 datanode2 $source /etc/sysconfig/network
(三)关闭防火墙
$service iptables stop $chkconfgi iptables off(关闭自动启动)
(四)配置ssh免密码登陆
在各机器上执行
#ssh-keygen -b 1024 -t rsa 一路回车
在~/.ssh/生成文件id_rsa id_rsa.pub
在namenode机器上执行:
#cd ~/.ssh/
#scp id_rsa.pub root@<各datanode的IP>:/home
在各datanode机器上执行:
#cd /home/
#cat id_rsa.pub >>/root/.ssh/authorized_keys
然后分别执行ssh datanode1.。。。。等等来验证是否成功
(五)安装hadoop
我们默认安装的地址是/usr/local/hadoop
然后配置环境
$vi /etc/profile 改成这样 export HADOOP_HOME_WARN_SUPPRESS=1(为了防止警告) export JAVA_HOME=/usr/local/jdk export HADOOP_HOME=/usr/local/hadoop export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH<strong> </strong>(六)修改hadoop配置文件
1.修改conf/hadoop-env.sh
export JAVA_HOME=/usr/local/java export HADOOP_HEAPSIZE=1024 export HADOOP_PID_DIR=/usr/local/hadoop/pids 保存退出2.配置conf/core-site.xml,增加以下内容
<property> <name>fs.default.name</name> <value>hdfs://hadoop:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/tmp</value> </property>3.配置conf/hdfs-site.xml
<property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.hosts.exclude</name> <value>/usr/local/hadoop/conf/excludes</value> </property>
配置conf/mapred-site.xml
<property> <name>mapred.job.tracker</name> <value>hdfs://hadoop:9001/</value> </property>配置conf/masters
hadoop
配置conf/slaves
datanode1
datanode2
把hadoop0的hadoop目录、jdk目录、/etc/hosts、/etc/profile复制到datanode1,datanode2节点(注意:除了主机名字要在各自机器上改,其他的只需要复制过去就行了)
$scp <source> datanodeX:<distination>
(七)执行hadoop
第一次启动Hadoop,必须先格式化namenode
#cd $HADOOP_HOME /bin
#hadoop namenode –format
启动Hadoop
#cd $HADOOP_HOME/bin
#./start-all.sh
如果启动过程,报错safemode相关的Exception
执行命令
# hadoop dfsadmin -safemode leave(安全模式,我们关掉就可以了)
然后再启动Hadoop
停止Hadoop
cd $HADOOP_HOME/bin
#./stop-all.sh
运行wordocunt
hadoop fs -put README.txt / hadoop jar hadoop-example.jar wordcount /README.txt /wordcountoutput然后执行hadoop fs -lsr /
可以看到输出的文件在、wordcountoutput/part-r-0000下面
执行hadoop fs -text /wordcountoutput/part-r-0000查看
这就是我们统计的单词啦
遇到的问题:
可能会遇见datanode没有datanode进程,我们可以先进入datanode的log文件查看。可以发现是因为namespaceID 不一致,
解决:删掉tmp下面的文件,然后重新format就行了
分别运行jps命令
可以看到
datanode:
就代表成功了,也可以在浏览器输入hadoop:50070查看
搞了大半天,终于算是搞定了
转载请注明http://blog.csdn.net/a837199685