一、所需软件
2.配置ssh信任关系,实现无密码登录
2.1.安装ssh
suse10 已默认安装ssh服务
2.2 配置ssh信任关系
生成机器A的公私密钥对:ssh-keygen -t rsa,之后一路回车。在~/.ssh目录下生成公钥id_rsa.pub,私钥id_ras。
拷贝机器A的id_rsa.pub到机器B的认证文件中:
cat id_rsa.pub >> ~/.ssh/authorized_keys
这时候机器A到机器B的信任关系就建立好了,此时在机器A可以不需要密码直接ssh登录机器B了。
本例中机器A和B是同一台机器,配置ssh信任关系以后可以使用ssh localhost或者ssh 机器IP地址来验证
3.通过ssh上传hadoop安装包到linux指定目录
hadoop-2.6.5.tar.gz 安装包的下载请到Apache官网或者其他途径获得
本文提供如下地址下载
http://hadoop.apache.org/releases.html
4.使用linux命令 tar -xvf hadoop-2.6.5.tar.gz 解压到/opt/hadoop目录下,并配置环境变量/etc/profile,通过source /etc/profile 使配置文件生效
export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
5.修改hadoop的一系列配置文件
修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh和yarn-evn.sh,配置JAVA_HOME路径:
export JAVA_HOME=/opt/jdk/jdk1.6.0_45
修改$HADOOP_HOME/etc/hadoop/slaves,增加本机IP地址:
cat "192.168.0.101" >> slaves
core-site.xml 192.168.0.101是我虚拟机的IP地址
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
<description>a base for other temporary directories.</description>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/dfs/nn</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:/opt/hadoop/dfs/dn</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>
permission checking is turned off
</description>
</property>
</configuration>
mapred-site.xml.template
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://192.168.0.101:9001</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6.格式化文件系统
执行命令 hdfs namenode –format 格式化文件系统
7.启停hadoop
在$HADOOP_HOME下执行sbin/start-all.sh启动hadoop集群,执行sbin/stop-all.sh停止hadoop集群
启动完成后执行命令 jps 看到如下进程说明启动成功
8.验证8088端口 和50070 端口
看到以上页面说明hadoop安装没有问题
9.验证hdfs的命令是否正常
hdfs dfs -ls ./ 查看hdfs文件系统下的所有文件
hdfs dfs -lsin 查看文件系统in文件夹下的所有文件
hdfs dfs -put ./ in 把当前目录下的文件copy到hdfs文件系统的in目录下
hdfs dfs -get ./a.txt
hdfs dfs -rm -f ./a.txt 删除hdfs 文件系统下的in文件
hdfs dfs -rm -r ./in 删除hdfs 文件系统下的in文件夹
hdfs dfs -cat ./in/a.txt 查看hdfs文件系统下 in文件夹下a.txt的内容
10.验证map/reduce计算框架是否正常
在/opt/hadoop 下
mkdir input 新建文件夹
cd input 切换到input
touch a.txt 新建文件
echo "hello world hello" > a.txt 向文件中写入内容
hdfs dfs -mkdir -p in 在hdfs文件系统中新建文件夹 in
hdfs dfs -put ./ in 把当前文件夹内的文件copy到in
hdfs dfs -ls 查看文件是否copy成功
cd /opt/hadoop/hadoop-2.6.5/ 切换到hadoop安装目录
hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount ./in/ ./out/ 统计in目录下所有的文件每个单词的个数,统计信息被输出到out目录,下图表示成功
hdfs dfs -ls out 查看 out目录下的文件
hdfs dfs -cat out/part-r-00000 查看统计结果
至此hadoop环境搭建成功