Hadoop220 部署spark 10Word文件下载.docx
- 文档编号:18603436
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:32
- 大小:333.76KB
Hadoop220 部署spark 10Word文件下载.docx
《Hadoop220 部署spark 10Word文件下载.docx》由会员分享,可在线阅读,更多相关《Hadoop220 部署spark 10Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
所有节点均是Centos6.464位系统,防火墙均禁用,sshd服务均开启并设置为开机启动。
a)首先在VMware中安装好一台Centos6.4,创建hadoop用户。
假设虚拟机的名字为NameNode
b)关闭虚拟机,把NameNode文件夹,拷贝4份,并命名为DataNode1,..,DataNode4
c)用VMware打开每个DateNode,设置其虚拟机的名字
d)打开操作系统,当弹出对话框时,选择“Icopyit”
e)打开每个虚拟机,查看ip地址
ifconfig
现将IP地址规划如下
192.168.1.150
namenode
192.168.1.151
datanode1
192.168.1.152
datanode2
192.168.1.153
datanode3
192.168.1.154
datanode4
f)每个虚拟机,永久关闭防火墙(非常重要,一定要确认),并关闭SELINUX
chkconfigiptablesoff(永久生效)
serviceiptablesstop(临时有效)
vim/etc/selinux/config
[root@DataNode1local]#chkconfigiptablesoff
[root@DataNode1local]#serviceiptablesstop
iptables:
Flushingfirewallrules:
[OK]
SettingchainstopolicyACCEPT:
filter[OK]
Unloadingmodules:
[root@DataNode1local]#
g)配置NameNode
第一步,检查机器名
#hostname
如发现不对,则修改,root用户登陆,修改命令如下
#vim/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=NameNode
依次对每个节点进行处理,修改完之后,重启系统#reboot
h)修改/etc/hosts
root用户
vim/etc/sysconfig/network
(1)namenode节点上编辑/etc/hosts文件
将所有节点的名字和IP地址写入其中,写入如下内容,注意注释掉127.0.0.1行,保证内容如下:
(对IP地址一定要确认,是否有重复或者错误)
192.168.1.150namenode
192.168.1.151datanode1
192.168.1.152datanode2
192.168.1.153datanode3
192.168.1.154datanode4
#127.0.0.1centos63localhost.localdomainlocalhost
(2)将Namenode上的/etc/hosts文件复制到所有数据节点上,操作步骤如下:
root用户登录namenode;
执行命令:
scp/etc/hostsroot@192.168.1.151:
/etc/hosts
scp/etc/hostsroot@192.168.1.152:
scp/etc/hostsroot@192.168.1.153:
scp/etc/hostsroot@192.168.1.154:
i)规划系统目录
安装目录和数据目录分开,且数据目录和hadoop的用户目录分开,如果需要重新格式化,则可以直接删除所有的数据目录,然后重建数据目录。
如果数据目录和安装目录或者用户目录放置在一起,则对数据目录操作时,存在误删除程序或者用户文件的风险。
完整路径
说明
/opt/hadoop
hadoop的程序安装主目录
/home/hadoop/hd_space/tmp
临时目录
/home/hadoop/hd_space/hdfs/name
namenode上存储hdfs名字空间元数据
/home/hadoop/hd_space/hdfs/data
datanode上数据块的物理存储位置
/home/hadoop/hd_space/mapred/local
tasktracker上执行mapreduce程序时的本地目录
/home/hadoop/hd_space/mapred/system
这个是hdfs中的目录,存储执行mr程序时的共享文件
开始建立目录:
在NameNode下,root用户
rm-rf/home/hd_space
mkdir-p/home/hadoop/hd_space/tmp
mkdir-p/home/hadoop/hd_space/dfs/name
mkdir-p/home/hadoop/hd_space/dfs/data
mkdir-p/home/hadoop/hd_space/mapred/local
mkdir-p/home/hadoop/hd_space/mapred/system
chown-Rhadoop:
hadoop/home/hadoop/hd_space/
修改目录/home/hadoop的拥有者(因为该目录用于安装hadoop,用户对其必须有rwx权限。
)
hadoop/home/hadoop
创建完毕基础目录后,下一步就是设置SSH无密码验证,以方便hadoop对集群进行管理。
2SSH无密码验证配置
Hadoop需要使用SSH协议,namenode将使用SSH协议启动namenode和datanode进程,datanode向namenode传递心跳信息可能也是使用SSH协议,这是我认为的,还没有做深入了解,datanode之间可能也需要使用SSH协议。
假若是,则需要配置使得所有节点之间可以相互SSH无密码登陆验证。
2.1配置所有节点之间SSH无密码验证
(0)原理
节点A要实现无密码公钥认证连接到节点B上时,节点A是客户端,节点B是服务端,需要在客户端A上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到服务端B上。
当客户端A通过ssh连接服务端B时,服务端B就会生成一个随机数并用客户端A的公钥对随机数进行加密,并发送给客户端A。
客户端A收到加密数之后再用私钥进行解密,并将解密数回传给B,B确认解密数无误之后就允许A进行连接了。
这就是一个公钥认证过程,其间不需要用户手工输入密码。
重要过程是将客户端A公钥复制到B上。
因此如果要实现所有节点之间无密码公钥认证,则需要将所有节点的公钥都复制到所有节点上。
(1)所有机器上生成密码对
(a)所有节点用hadoop用户登陆,并执行以下命令,生成rsa密钥对:
ssh-keygen-trsa
这将在/home/hd_space/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。
#suhadoop
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/home/hadoop/.ssh/id_rsa):
默认路径
Enterpassphrase(emptyfornopassphrase):
回车,空密码
Entersamepassphraseagain:
Youridentificationhasbeensavedin/home/hadoop/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/home/hadoop/.ssh/id_rsa.pub.
(b)将所有datanode节点的公钥id_rsa.pub传送到namenode上:
DataNode1上执行命令:
scpid_rsa.pubhadoop@NameNode:
/home/hadoop/.ssh/id_rsa.pub.datanode1
......
DataNodeN上执行命令:
/home/hadoop/.ssh/id_rsa.pub.datanoden
检查一下是否都已传输过来
各个数据节点的公钥已经传输过来。
(c)namenode节点上综合所有公钥(包括自身)并传送到所有节点上
[hadoop@NameNode.ssh]$catid_rsa.pub>
>
authorized_keys这是namenode自己的公钥
[hadoop@NameNode.ssh]$catid_rsa.pub.datanode1>
authorized_keys
[hadoop@NameNode.ssh]$catid_rsa.pub.datanode2>
[hadoop@NameNode.ssh]$catid_rsa.pub.datanode3>
[hadoop@NameNode.ssh]$catid_rsa.pub.datanode4>
chmod644~/.ssh/authorized_keys
使用SSH协议将namenode的公钥信息authorized_keys复制到所有DataNode的.ssh目录下。
scpauthorized_keysdata节点ip地址:
/home/hd_space/.ssh
scp~/.ssh/authorized_keyshadoop@DataNode1:
/home/hadoop/.ssh/authorized_keys
scp~/.ssh/authorized_keyshadoop@DataNode2:
/home/hadoop/.ssh/authorized_keys
scp~/.ssh/authorized_keyshadoop@DataNode3:
scp~/.ssh/authorized_keyshadoop@DataNode4:
从这里就可以看到,当配置好hosts之后,就可以直接以机器名来访问各个机器,不用再记忆各个机器的具体IP地址,当集群中机器很多且IP不连续时,就发挥出威力来了。
从上图可以看到,将authorized_keys分发给各个节点之后,可以直接ssh登录,不再需要密码。
这样配置过后,namenode可以无密码登录所有datanode,可以通过命令
“sshDataNode1(2,3,4)”来验证。
配置完毕,在namenode上执行“sshNameNode,所有数据节点”命令,因为ssh执行一次之后将不会再询问。
在各个DataNode上也进行“sshNameNode,所有数据节点”命令。
至此,所有的节点都能相互访问,下一步开始配置jdk
3JDK安装和Java环境变量配置
3.1安装JDK1.7
1.下载JDK。
选定linux环境版本,下载到的文件是:
jdk-7u21-linux-x64.tar.gz
2.解压
mvjdk-7u21-linux-x64.tar.gz
tarxfjdk-7u21-linux-x64.tar.gz
3.2Java环境变量配置
root用户登陆,命令行中执行命令”vim/etc/profile”,并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。
#setjavaenvironment
exportJAVA_HOME=/opt/jdk1.7.0_21
exportJRE_HOME=/opt/jdk1.7.0_21/jre
exportPATH=$JAVA_HOME/bin:
$JRE_HOME/bin:
$PATH
exportCLASSPATH=.:
$JAVA_HOME/lib/dt.jar:
$JAVA_HOME/lib/tools.jar
保存并退出,执行以下命令使配置生效
chmod+x/etc/profile
source/etc/profile
配置完毕,在命令行中使用命令“java-version”可以判断是否成功。
在hadoop用户下测试java–version,一样成功。
4Hadoop集群配置
在namenode上执行:
Hadoop用户登录。
下载hadoop-2.2.0(已编译好的64位的hadoop2.2,可以从网盘下载
),将其解压到/opt目录下.
(1)配置Hadoop的配置文件
(a)配置/etc/profile
#sethadoop
exportHADOOP_HOME=/opt/hadoop-2.2.0
exportHADOOP_CONF_DIR=/opt/hadoop-2.2.0/etc/hadoop
exportYARN_CONF_DIR=/opt/hadoop-2.2.0/etc/hadoop
exportPATH=$HADOOP_HOME/bin:
$HADOOP_HOME/sbin:
(b)配置hadoop-env.sh
$vim$HADOOP_CONF_DIR/hadoop-env.sh
(c)yarn-env.sh
vim$HADOOP_CONF_DIR/yarn-env.sh
(d)core-site.xml
vim$HADOOP_CONF_DIR/core-site.xml
<
property>
<
name>
fs.defaultFS<
/name>
value>
hdfs:
//NameNode:
9000<
/value>
/property>
hadoop.tmp.dir<
/home/hadoop/hd_space/tmp<
(e)hdfs-site.xml
?
xmlversion="
1.0"
encoding="
UTF-8"
xml-stylesheettype="
text/xsl"
href="
configuration.xsl"
!
--
LicensedundertheApacheLicense,Version2.0(the"
License"
);
youmaynotusethisfileexceptincompliancewiththeLicense.
YoumayobtainacopyoftheLicenseat
http:
//www.apache.org/licenses/LICENSE-2.0
Unlessrequiredbyapplicablelaworagreedtoinwriting,software
distributedundertheLicenseisdistributedonan"
ASIS"
BASIS,
WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.
SeetheLicenseforthespecificlanguagegoverningpermissionsand
limitationsundertheLicense.SeeaccompanyingLICENSEfile.
-->
--Putsite-specificpropertyoverridesinthisfile.-->
configuration>
dfs.name.dir<
/home/hadoop/hd_space/hdfs/name<
dfs.data.dir<
/home/hadoop/hd_space/hdfs/data<
dfs.replication<
3<
/configuration>
(f)mapred-site.xml
mapreduce.cluster.local.dir<
/home/hadoop/hd_space/mapred/local<
mapreduce.cluster.system.dir<
/home/hadoop/hd_space/mapred/system<
mapreduce.framework.name<
yarn<
mapreduce.jobhistory.address<
NameNode:
10020<
mapreduce.jobhistory.webapp.address<
19888<
(g)配置masters文件,把localhost修改为namenode的主机名
NameNode
(h)配置slaves文件,删除localhost,加入所有datanode的主机名
DataNode1
DataNode2
DataNode3
DataNode4
在NameNode,执行脚本命令
fortargetinDataNode1DataNode2DataNode3DataNode4
do
scp-r/opt/hadoop-2.2.0/etc/hadoop$target:
/opt/hadoop-2.2.0/etc
done
5Hadoop集群启动
hadoopnamenode-format
--------------------因为配置了环境变量,此处不需要输入hadoop命令的全路径/hadoop/bin/hadoop
执行后的结果中会提示“dfs/namehasbeensuccessfullyformatted”。
否则格式化失败。
启动hadoop:
start-dfs.sh
start-yarn.sh
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop220 部署spark 10 部署 spark