Hadoop是用作处理大数据用的,核心是HDFS、Map/Reduce。虽然目前工作中不需要使用这个,但是,技多不压身,经过虚拟机很多遍的尝试,终于将Hadoop2.5.2的环境顺利搭建起来了。
首先准备一个CentOS,将主机名改为master,并且在/etc/hosts里面加入master对应的本机ip地址。
Linux基本配置
vi /etc/sysconfig/network
#编辑文件里面的HOSTNAME=master
vi /etc/hosts
#添加
本机IP地址 master
然后关闭iptables并设置开机不启动。
service iptables stop
chkconfig iptables off
重启系统,接下来是配置ssh无密码登陆。配置这个的理由是在启动hadoop可以不用输入密码。
SSH无密码登陆
vi /etc/ssh/sshd_config
#以下4行的注释需要打开
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#保存,并重启sshd
service sshd restart
#生成免登陆秘钥
ssh-keygen -t rsa
#一路回车就行。之后会在当前登陆用户主目录中的.ssh文件夹里生成2个文件。
#进入.ssh目录。
cat id_rsa.pub >> authorized_keys
#现在可以用ssh无密码登陆系统了。
ssh localhost
JDK安装配置(略)
使用的版本是jdk-7u79-linux-x64。
安装并配置Hadoop2.5.2
将下载好的tar.gz包上传至环境。
tar -zxvf hadoop-2.5.2.tar.gz -C /usr
vi /etc/profile
#将以下内容放在最后面。
export JAVA_HOME=/usr/java/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/usr/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib
#保存,并执行source /etc/profile
#配置Hadoop
#创建hadoop的name与data目录
mkdir -p /usr/hdfs/name
mkdir -p /usr/hdfs/data
mkdir -p /usr/hdfs/tmp
cd /usr/hadoop-2.5.2/etc/hadoop
设置以下文件的JAVA_HOME
hadoop-env.sh hadoop-yarn.sh
vi core-site.xml
#在configuration节点里面加入以下配置,注意ip改为本机ip
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!--file system properties-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.112:9000</value>
</property>
vi hdfs-site.xml
#同样在configuration节点里面加入以下配置
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
#从模板复制一份mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
#同样在configuration节点里面加入以下配置
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
vi yarn-site.xml
#同样在configuration节点里面加入以下配置,注意将ip地址换成本机的。
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>192.168.1.112:18040</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.112:18030</value>
</property>
<property>
<description>The address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.112:18088</value>
</property>
<property>
<description>The address of the resource tracker interface.</description>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.1.112:8025</value>
</property>
至此,已经将Hadoop初步的环境配置好了,在启动之前还需要格式化namenode。
输入命令“hadoop namenode -format”;
启动命令:
start-dfs.sh
start-yarn.sh
停止命令:
stop-dfs.sh
stop-yarn.sh
启动完毕,打开浏览器输入 http://192.168.1.112:50070 与 http://192.168.1.112:18088 验证安装。
测试Hadoop
通过运行hadoop自带的wordcount来验证安装是否正确。
进入hadoop安装的目录,输入以下命令。
mkdir example
cd example
编辑file1.txt与file2.txt
vi file1.txt
hello zhm
hello hadoop
hello cz
vi file2.txt
hadoop is ok
hadoop is newbee
hadoop 2.5.2
cd ..
hadoop fs -mkdir /data
hadoop fs -put -f example/file1.txt example/file2.txt /data
#运行wordcount例子
hadoop jar ./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.5.2-sources.jar org.apache.hadoop.examples.WordCount /data /output
#查看运行结果
hadoop fs -cat /output/part-r-00000
#结果如下:
2.5.2 1
cz 1
hadoop 4
hello 3
is 2
newbee 1
ok 1
zhm 1
到这里,环境就已经配置好了,下面就是搞使用Maven开发Hadoop项目了。
在安装的过程中,遇到问题是必然的。好好在网络上搜索搜索一般都可以找到你想要的答案的。