博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop集群搭建伪分布式集群搭建
阅读量:7170 次
发布时间:2019-06-29

本文共 4848 字,大约阅读时间需要 16 分钟。

 

安装部署hadoop 伪分布集群。

实践:以hadoop44:192.168.10.40为例子

1、       安装jdk1.7

1)查看是否有jdk

#java –version

 

 

2)查看cent系统位数(64位):

#file /bin/ls

 

 

3)切换到根目录

#ls

#cd  /

 

 

切换到usr目录:

#cd usr

4)创建java目录

#mkdir java

 

 

5)将下载好的jdk1.7上传到当前目录,使用rz命令上传文件

 

 

上传后使用#ls查看目录中是否有文件

 

 

对安装包进行解压:

#tar zxvf jdk-7u79-linux-x64.tar.gz

解压后ls查看文件

 

6)设置jdk环境变量

进入profile目录

# cd /etc/profile.d

 

 

新建java脚本设置jdk

#vi java.sh

在脚本中写目录设置:

JAVA_HOME=/usr/java/jdk1.7.0_79

CLASSPATH=$JAVA_HOME/lib:$CLASSPATH

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

 

 

保存退出

查看jdk是否配置成功

#java -version

 

 

使用source命令使修改的配置生效:

# source /etc/profile.d/java.sh

 

2、       修改hosts文件:本地ip:192.168.20.40

# vi /etc/hosts

 

 

添加ip与hostname对应关系

 

 

保存退出

 

 

3、       创建新的用户安装hadoop

1)  创建用户组hadoopgroup;

# groupadd hadoopgroup

2)  新建hadoopuser1用户并添加到hadoopgroup用户组中

# useradd -g hadoopgroup hadoopuser1

3)  给hadoop用户创建密码

#passwd hadoopuser1

输入密码:hadoop1 回车 再一次输入hadoop1回车即可

 

 

4、       安装hadoop,首先需要关闭防火墙

# service iptables status 查看状态

chkconfig iptables off

5、       SSH无密码验证配置

1)    首先切换到刚才创建的hadoopuser1用户:

#su hadoopuser1

#cd切换到根目录

然后可以看到用户是hadoopuser1@hadoop44,之前为root用户

创建.ssh目录

#mkdir .ssh

2)    创建秘钥

#ssh-keygen –t  rsa

一直回车即可

 

 

 

3)    切换到刚才的.ssh目录查看

 

 

#cd .ssh

#ls

Id_rsa为私钥,id_rsa.pub为公钥

4)   复制公钥到认证文件中

#cp id_rsa.pub authorized_keys

 

 

#ls

#vi authorized_keys

 

 

 

 

5)   赋予权限 首先回到根目录

cd ..注意两个点和cd直接有空格

#chmod 700 .ssh

#chmod 600 .ssh/*

dsh赋予700权限。ssh内部为600权限

 

 

6)   访问host用户:

#ssh hadoop44

如果报错,可能是没有安装ssh插件,需要执行#yum –y install openssh-clients(在root目录下)

 

 

6、       SSH伪分布式安装

1)    需要切换到root目录下

# cd /usr/java

#su root

 

 

2)    在线下载hadoop

需要安装wget插件:

#yum –y install wget

#wget

 

 

3)    解压hadoop

# tar zxvf hadoop-2.2.0-x64.tar.gz

     #ls查看文件

 

 

4)    修改文件名

#mv hadoop-2.2.0 hadoop

将hadoop-2.2.0修改为hadoop

 

 

 

 

 

修改为hadoop2.2方便后面区分,其实修改为hadoop比较方便

5)    将hadoop文件权限赋值为hadoops组下的hadoop用户

小知识:

 

 

命令chown

命令语法 

chown [-R]账户名 文件名 或者 chown [-R] 账户名:组名 文件名

命令描述 

命令chown可以更改文件的所有者

命令选项 

-R 选项只适用目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。

# chown -R hadoopuser1:hadoopgroup hadoop

# ls  –l查看权限

 

 

6)    hadoop数据目录—3个 以及授权

# mkdir -p /data/dfs/name

# mkdir -p /data/dfs/data

# mkdir -p /data/tmp

 

 

查看

# ls -l /data

查看看到data权限是root用户,

将hadoop下的data权限赋值为hadoops组下的hadoop用户

# chown -R hadoops:hadoop hadoop2.2 /data

,然后查看#ls –l /data 看到权限是hadoop用户了

 

 

7)    修改hadoop配置文件core-site.xml

#su hadoop 切换用户

#ls

 

 

 

<configuration>

        <property>

                <name>fs.defaultFS</name>

                <value>hdfs://hadoop44:9000</value>

        </property>

        <property>

                <name>hadoop.tmp.dir</name>

                <value>file:/data/tmp</value>

        </property>

        <property>

                 <name>hadoop.proxyuser.hadoop.hosts</name>

                 <value>*</value>

        </property>

        <property>

                 <name>hadoop.proxyuser.hadoop.groups</name>

                 <value>*</value>

        </property>

</configuration>

 

 

保存退出

注意:此处不能保存,是因为权限问题,本人一开始因为授权的组合用户反了导致不能保存。

8)    修改hadoop配置文件hdfs-site.xml文件

 

 

 

<configuration>

        <property>

                <name>dfs.namenode.name.dir</name>

                <value>/data/dfs/name</value>

                <final>true</final>

        </property>

        <property>

                <name>dfs.datanode.data.dir</name>

                <value>/data/dfs/data</value>

                <final>true</final>

        </property>

        <property>

                <name>dfs.replication</name>

                <value>1</value>

        </property>

        <property>

                <name>dfs.permissions</name>

                <value>false</value>

        </property>

</configuration>

9)    修改hadoop配置文件mapred-site.xml文件,由于只有一个template文件,应该需要复制一个文件 使用

# cp mapred-site.xml.template mapred-site.xml

 

 

 

 

<configuration>

        <property>

                <name>mapreduce.framework.name</name>

                <value>yarn</value>

        </property>

</configuration>

10)修改hadoop配置文件yarn-site.xml文件

#vi yarn-site.xml

 

 

<configuration>

 

<!-- Site specific YARN configuration properties -->

        <property>

                <name>yarn.nodemanager.aux-services</name>

                <value>mapreduce_shuffle</value>

        </property>

</configuration>

11)修改hadoop配置文件slaves文件

#vi slaves.xml

 

 

指定哪个用户

12)修改hadoop环境变量,首先切换到root用户下面、

#su root 输入密码hadoop

#vi /etc/profile

 

 

 

HADOOP_HOME=/usr/java/hadoop

PATH=$HADOOP_HOME/bin:$PATH

export HADOOP_HOME PATH

 

 

#source /etc/profile

7、       测试运行

1)    格式化namenode,需要切换到hadoopuser1用户下:

#su hadoopuser1

#cd ..

#cd ..

#ls

#bin/hadoop namenode -format

 

 

2)    启动集群

#sbin/start-all.sh

 

 

 

 

 

其中本机调试时候出现了错误,是因为配置文件写错了,需要重新修改

 

 

重新到目录下修改好后启动集群:

 

 

8、       在window下配置hostname

1)           打开记事本,以管理员身份运行。

 

 

记事本-打开- C:\Windows\System32\drivers\etc\hosts文件(选择所有文件)

 

 

 

 

配置IP和虚拟机host名称

然后打开window浏览器输入:通过webui查看hadoop集群和文件系统的状态

http://hadoop44:50070/dfshealth.jsp

 

 

 

2)           测试文件,新增一个ceshi1.txt文件,里面随便输入一些字符。

 

查看hadoop下的fs文件目录,没有文件

#hadoop fs –ls  /

 

 

 

创建一个目录songxiaomeiceshi

#Hadoop fs –mkdir /songxiaomeiceshi

 

 

# hadoop fs -put /usr/java/hadoop/ceshi1.txt /songxiaomeiceshi

使用以上命令将ceshi1文件放在刚刚创建的hadoop文件songxiaomeiceshi 目录下

 

 

#hadoop fs -ls /songxiaomeiceshi

 

 

3)           Window中web页面打开:

 

 

点击running

 

 

目前没有正在运行的作业

 

 

执行hadoop自带的wordcount程序,然后可以在网页中点击running 以及finished查看结果

#bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /songxiaomeiceshi/ceshi1.txt /hadoop44/wordcount-out

 

 

http://hadoop44:50070/dfshealth.jsp

 

 

 

 

 

 

其实前面执行

#bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /songxiaomeiceshi/ceshi1.txt /hadoop44/wordcount-out

的时候可以将hadoop44改为songxiaomeiceshi,执行完结果放在同一目录下

转载于:https://www.cnblogs.com/ailsa-mei/p/8734457.html

你可能感兴趣的文章
c++ 为自定义类添加stl遍历器风格的遍历方式
查看>>
创建对象的几种方式
查看>>
Linux chown
查看>>
数据库设计
查看>>
poj1120
查看>>
poj3687
查看>>
项目再分析、代码完善、用户体验评估
查看>>
BFS HDOJ 2102 A计划
查看>>
补题列表
查看>>
Kruskal && Prim模板
查看>>
逆序数 POJ 2299 Ultra-QuickSort
查看>>
SSM整合
查看>>
EASYUI 表单(FORM)用法
查看>>
SpringMVC设置不拦截静态资源css,js
查看>>
解决将/etc/passwd文件中1000改为0后只能guest进入系统的问题 ||ubuntu下将普通用户权限升级为root用户权限的方法;...
查看>>
(转)linux多线程,线程的分离与结合
查看>>
彻底消除wine中文乱码,QQ,kugoo等等....
查看>>
Codeforces Round #287 (Div. 2) D. The Maths Lecture [数位dp]
查看>>
《鸟哥的Linux私房菜》读书笔记--第0章 计算机概论 硬件部分
查看>>
02、学PHP可以干什么
查看>>