linux 配置
1:ip配置
执行ifconfig命令可以查看ip地址
虚拟机一般是动态分配ip,实际生产环境需要使用静态ip,在/etc/sysconfig/network-scripts目录下的ifcfg-eth0文件中修改ip信息,一般这个由专门的网络管理人员会去修改。另外有可能会有多个网卡eth0,eth1等。
2:关闭防火墙
a:我使用SecureCRT链接我的虚拟机,SecureCRT使用SSH链接系统端口是22。如果开启防火墙的话它会禁止使用22端口
c:后期使用java操作一些软件时也需要关闭防火墙
b:关闭防火墙
使用root用户登录
service iptables status 查看防火墙状态
service iptables start/stop 启动关闭防火墙
chkconfig iptables off 重新启动虚拟机时不再默认开启防火墙,
chkconfig --list|grep iptables 如果全部为off的话重启时就不会开启防火墙,只要有on系统就会开启防火墙
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3:修改主机名
我最好修改主机名并建立他与本机ip的对应关系,这样后期如果ip地址发生变化我们的业务中只需要修改主机名与ip的对应关系即可。
hostname 查看主机名
修改/etc/sysconfig/network文件更改主机名,HOSTNAME=主机名
hostname 主机名 强制生效
4:建立ip主机名映射关系
修改/etc/hosts文件,建立ip与主机名的对应关系,例如:192.168.0.1主机名,执行ping 主机名,看映射是否生效
5:配置java环境变量
A:删除/usr/local下所有的无用目录rm -rf *,拷贝jdk-7u79-linux-x64.tar.gz到/usr/local
B:解压:tar -zxvf jdk-7u79-linux-x64.tar.gz
C:在/etc/profile文件中配置java环境变量
export JAVA_HOME=/usr/local/jdk1.7.0_79
export PATH=.:$JAVA_HOME/bin:$PATH 注意.表示当前目录
D:source /etc/profile,使刚刚修改环境变量生效
E:最后执行java –version,如下输出证明成功
[root@shb01 local]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build24.79-b02, mixed mode)
6:SecureCRT连接问题
如果登录报错
The server has disconnected with anerror. Server message reads:
A protocol error occurred. Change ofusername or service not allowed: (shb01,ssh-connection) -> (root,ssh-connection)
需要修改一下配置,选项-> 会话选项 -> 连接 -> SSH2 -> 用户名(可能没有配置root,这样也可以禁用服务器的ROOT登录了)
7:windows平台映射配置
修改C:\Windows\System32\drivers\etc\hosts文件,加入虚拟机ip地址与主机名的映射关系,通过web访问hadoop时会用到。例如:192.168.79.128 主机名
8:环境变量
在/etc/profile/中配置hadoop的目录便于我们后期使用
Export JAVA_HOME=/usr/local/java_7.9.0
exportHADOOP_HOME=/usr/local/hadoop-2.6.0
exportPATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
或
export PATH=.:$JAVA_HOME/bin:/usr/local/hadoop-2.6.0/bin:/usr/local/hadoop-2.6.0/sbin:$PATH
执行source/etc/profile
执行java –version查看jdk是否配置成功
9:ssh
开启sshd服务
service sshdstatus
service sshd start
在启动hdfs时会提示我们输入密码,这样我们需要配置ssh免登录
执行如下命令
ssh-keygen -t rsa 产生密钥,提示时全部回车
ssh-copy-id -i shb01 提示时输入密码
ssh shb01 如果正常看能不能登录
[root@shb01 hadoop-2.6.0]# ssh shb01
Last login: Wed Aug 10 01:42:12 2016 from 192.168.79.1
[root@shb01 ~]# exit
logout
Connection to shb01 closed.
[root@shb01 hadoop-2.6.0]#
设置完毕后再启动hdfs后就不需要输入登录密码了
Hdfs伪分布安装
1:hadoop目录结构
a:解压缩安装包tar -zxvf hadoop-2.6.0.tar.gz
b:目录结构
hadoop程序存放目录:/usr/local/Hadoop-2.6.0
etc/hadoop目录存放的是hadoop的配置文件
bin存放框架组件的管理脚本hdfs,yarn
sbin存放框架本身的命令如start,stop
lib/native存放操作系统相关的链接文件
share/hadoop存放框架运行需要的jar
以下目录需提前建,mkdir–p /usr/local/hadoop_repo/name
nameNode存储数据目录:/usr/local/hadoop_repo/name
dataNode存储数据目录:/usr/local/hadoop_repo/data
secondaryNameNode存储目录:/usr/local/hadoop_repo/namesecondary
日志文件目录:/usr/local/hadoop_repo/logs
临时文件目录:/usr/local/hadoop_repo/tmp
2:基本配置文件
安装Hadoop主要注意修改以下几个配置文件,/usr/local/hadoop-2.6.0/etc/hadoop目录下。
A:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://shb100:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop_repo/tmp</value>
</property>
<!--
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
-->
</configuration>
B:hdfs-site.xml ,这里配置namenode,datanode,secondarynamenode,均在一个节点shb100上
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop_repo/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop_repo/data</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///usr/local/hadoop_repo/namesecondary</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>shb100:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
C:mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>shb100:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>shb100:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/history</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
</property>
</configuration>
D:yarn-site.xml,yarn.resourcemanager.hostname的value改为我们的主机名,均在shb100上
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>shb100</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>shb100:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>shb100:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>shb100:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>shb100:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>shb100:8088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
E:hadoop-env.sh
在文件后面增加,注意不要重复
export JAVA_HOME=/usr/local/jdk1.7.0_79
export HADOOP_LOG_DIR=/usr/local/hadoop_repo/logs
export HADOOP_ROOT_LOGGER=DEBUG,DRFA
F:yarn-env.sh
在文件后面增加
export JAVA_HOME=/usr/local/jdk1.7.0_79
export YARN_LOG_DIR=/usr/local/hadoop_repo/logs
export YARN_ROOT_LOGGER=DEBUG,DRFA
G:slaves,在文件中配置我们的主机名。shb100
H:log4j.properties
hadoop.log.dir=/usr/local/hadoop_repo/logs
3:hdfs格式化并启动hdfs
在bin目录执行hadoopnamenode –format或hdfs namenode -format命令格式化,但是此命令只能执行一次不能多次格式化。如果成功可以在日志中看到成功的提示。
执行
执行start-dfs.sh启动hdfs,关闭命令stop-dfs.sh
启动成功后执行jps查看namenode,datanode,secondarynamenode,resourcemanager,nodemanager是否已经启动
[root@shb100sbin]# jps
27875 Jps
27365SecondaryNameNode
27123 NameNode
27600NodeManager
27512ResourceManager
27209 DataNode
在logs目录下可以看到namenode,datanode,secondarynamenode,resourcemanager,nodemanager的启动日志
4:web访问
在浏览器地址栏中输入http://shb01:50070查看是否能够如下显示,也可以通过ip访问。
上面的例子我的主机名是shb100,shb01是之前的截图但配置方式一样。