作业20172834谢宏明"/>
大数据平台开发大作业20172834谢宏明
Hadoop安装过程:
(1)在VMware中安装了CentOS,修改网络连接为仅主机模式:与主机共享的专用网络。
(2)启动Linux系统,进行Linux系统中的IP地址、网关、子网掩码。
(3)修改主机名,将主机名和IP地址进行绑定
(4)关闭防火墙
(5)配置SSH免密码登陆
(6)安装jdk
详细:
Linux的安装命令:rmp;yum;tar
(1)用rpm装jdk:
-rpm -i jdk-7u67-linux-x64.rpm
-whereis java
-vi + /etc/profile
export JAVA_HOME=/usr/bin/java
export PATH=$PATH:$JAVA_HOME/bin
-source /etc/profile
(2)免秘钥
-ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
-cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
之后进行验证
-ssh localhost
-ssh node01
(3)装hadoop2.6.5
-tar xf hadoop-2.6.5.tar.gz -C /opt/ldy
对配置文件进行一些修改:
export JAVA_HOME=/usr/bin/java
export HADOOP_HOME=/opt/ldy/hadoop-2.6.5
export PATH=$PATH:/usr/java/jdk1.7.0_67/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
修改完成后输入hd按Tab键可以联想出hdfs,输入start-d按Tab键可以联想出start-dfs.
修改hadoop配置文件信息
cd /opt/ldy/hadoop-2.6.5/etc/hadoop
vi hadoop-env.sh
vi mapred-env.sh
vi yarn-env.sh
给这三个文件里的JAVA_HOME都改成绝对路径/usr/java/jdk1.7.0_67
配置 vi core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://node03:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/ldy/hadoop/pseudo</value>
</property>
配置 vi hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node03:50090</value>
</property>
配置slaves文件
vi slaves
node03
(4)格式化hdfs
hdfs namenode -format
(5)启动集群
start-dfs.sh
(6)创建目录:hdfs dfs -mkdir -p /user/root
(7)上传文件: hdfs dfs -put a.txt /user/root
(8) 停止集群:stop-dfs.sh
Hadoop HA高可用安装
分发jdk到node04 05 06
-scp jdk-7u67-linux-x64.rpm node04:`pwd`
-scp jdk-7u67-linux-x64.rpm node05:`pwd`
-scp jdk-7u67-linux-x64.rpm node06:`pwd`
分别在node04、05、06上执行rpm安装命令
-rpm -i jdk-7u67-linux-x64.rpm
在node03上cd /etc,在此目录下把profile文件分发到node04、05、06上。
scp profile node04:`pwd`
同步所有服务器时间
1.yum进行时间同步器的安装
-yum -y install ntp
2.执行同步命令
-ntpdate time1.aliyun
检查配置文件
1.-cat /etc/sysconfig/network
查看HOSTNAME是否正确
2.-cat /etc/hosts
查看IP映射是否正确
3. -cat /etc/sysconfig/selinux里是否
SELINUX=disabled
4. service iptables status查看防火墙是否关闭
免密钥设置
1. 在家目录下 ll –a看下有无.ssh文件,如果没有就ssh loalhost一下
2. -cd .ssh ,并ll查看一下
3. 把node03的公钥发给其他三台机子
在node02上分别ssh node03,ssh node04,ssh node05
4. 在node04的.ssh目录下看是否有node03.pub
如果有,那就追加到authorized_keys
cat node03.pub >> authorized_keys
并且在node03上ssh node04看是否免密钥了,
给node05、06都追加一下node03.pub,也就是在node05、06的.ssh目录下执行cat node03.pub >> authorized_keys
1.node03与node04间互相免密钥: node03可免密钥登录node04,那现需node04上能免密钥登node03,所以 在node04上:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost验证一下
分发到node03上:scp id_dsa.pub node03:`pwd`/node04.pub
在node03的.ssh目录下,cat node04.pub >> authorized_keys,
在node04上ssh node03验证一下可否免密钥登录
vi hdfs-site.xml
去掉snn的配置
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node03:50090</value>
</property>
1.vi hdfs-site.xml 增加以下property
<!-- 为namenode集群定义一个services name -->
<property>
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
1.vi hdfs-site.xml
<!--指定HDFS副本的数量,不能超过机器节点数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- nameservice 包含哪些namenode,为各个namenode起名 -->
<property>
<name>dfs.ha.namenodes. mycluster</name> <value>nn1,nn2</value>
</property>
1.vi hdfs-site.xml
<!-- 名为nn1的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->
<property>
<name>dfs.namenode.rpc-address. mycluster.nn1</name> <value>node03:9000</value>
</property>
<!--名为nn1的namenode的http地址和端口号,用来和web客户端通讯 -->
<property>
<name>dfs.namenode.http-address. mycluster.nn1</name> <value>node03:50070</value>
</property>
1.vi hdfs-site.xml
<!-- 名为nn2的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->
<property>
<name>dfs.namenode.rpc-address. mycluster.nn2</name> <value>node04:9000</value>
</property>
<!--名为nn2的namenode的http地址和端口号,用来和web客户端通讯 -->
<property>
<name>dfs.namenode.http-address. mycluster.nn2</name> <value>node04:50070</value>
</property>
1.vi hdfs-site.xml
<!-- namenode间用于共享编辑日志的journal节点列表 -->
<property>
<name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node03:8485;node04:8485;node05:8485/mycluster</value>
</property>
<!-- journalnode 上用于存放edits日志的目录 -->
<property>
<name>dfs.journalnode.edits.dir</name> <value>/var/ldy/hadoop/ha/jn</value>
</property>
1.vi hdfs-site.xml
<!-- 指定该集群出现故障时,是否自动切换到另一台namenode -->
<property>
<name>dfs.ha.automatic-failover.enabled.cluster</name> <value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.cluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
1.vi hdfs-site.xml
<!-- 一旦需要NameNode切换,使用ssh方式进行操作 -->
<property>
<name>dfs.ha.fencing.methods</name> <value>sshfence</value>
</property>
<!-- 如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value>
</property>
2.vi core-site.xml
<!– 集群名称mycluster-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://mycluster</value>
</property>
<!– zookeeper布署的位置-->
<property>
<name>ha.zookeeper.quorum</name>
<value>node07:2181,node08:2181,node09:2181</value>
</property>
2.vi slaves
node04
node05
node06
安装hadoop
cd /opt ,将其下的ldy目录分发到node04、05、06
scp –r ldy/ node04:`pwd`
scp –r ldy/ node05:`pwd`
scp –r ldy/ node06:`pwd`
4.将hdfs-site.xml和core-site.xml分发到node04、05、06
-scp hdfs-site.xml core-site.xml node04:`pwd`
-scp hdfs-site.xml core-site.xml node05:`pwd`
-scp hdfs-site.xml core-site.xml node06:`pwd`
安装zookeeper
1.解压安装zookeeper
tar xf zookeeper-3.4.6.tar.gz -C /opt/ldy
2.修改zookeeper的配置文件
cd /opt/ldy/zookeeper-3.4.6/conf
给zoo_sample.cfg改名
cp zoo_sample.cfg zoo.cfg
启动journalnode
对任一namenode格式化
然后,启动刚刚格式化的那台namenode
hadoop-daemon.sh start namenode
给另一namenode同步数据
格式化zkfc
hdfs zkfc -formatZK
在node04上执行zkCli.sh打开zookeeper客户端看hadoop-ha是否打开
启动hdfs集群
在node03上启动hdfs集群:
start-dfs.sh
在Windows下配置hadoop的环境:
此电脑”右键-属性-高级系统设置
更改环境变量,增加HADOOP_HOME
并且给path后追加HADOOP_HOME的bin目录,注意:Windows里path的路径分隔符是分号;,而不是冒号:
然后再新建一个变量HADOOP_USER_NAME
把hadoop.dll拷贝到以下路径
安装ecipse-mars,此版本的eclipse带插件,可以可视化的看到hadoop的一些东西,比较方便
如果eclipse界面下方没有小象图标,则做后续三步调出
在eclipse里把hadoop相关信息填一下
在eclipse里导入自己建一个包库
把jar包导入刚建的包库
把刚建的包库引入到project里
把JUnit包库引入到project里
利用xftp把hdfs-site.xml,core-site.xml等几个xml放到project的src目录。
完成Hadoop的安装
更多推荐
大数据平台开发大作业20172834谢宏明
发布评论