步骤总览:
a、安装jdk
b、安装hadoop,配置hadoop环境变量,修改hadoop配置文件
c、克隆虚拟机
d、修改ip地址为固定ip,编写hosts与hostname
e、配置无密登录ssh,编写xcall,xsync
f、hadoop格式化,启动守护进程。
--------------------------------------------------------
- 安装jdk
- 卸载原有的openjdk
- 查看CentOS自带JDK是否已安装。
◆输入:yum list installed |grep java。
- 若有自带安装的JDK,如何卸载CentOS系统自带Java环境?
◆卸载JDK相关文件输入:yum -y remove java-1.7.0-openjdk*。
◆卸载tzdata-java输入:yum -y remove tzdata-java.noarch。
- 当结果显示为Complete!即卸载完毕。
- 安装jdk
- 下载jdk ,并解压到soft目录下
$> sudo tar zxvf jdk-8u65-linux-x64.tar.gz -C /soft
1. 编写source /etc/profile,输入已下内容
#java environment
export JAVA_HOME=/soft/jdk1.8.0_65
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
1. 刷新资源 $>source /etc/profile
2. 查看版本
- 安装hadoop,并配置完全分布式
- 解压到/soft目录下
b、 复制/soft/hadoop/erc/hadoop文件,其中full为完全分布式的配置文件,presu为委分布,local为本地。删除hadoop文件夹,创建hadoop链接
配置hadoop环境变量,并检查是否成功
$>sudo nano /etc/profile
...
export JAVA_HOME=/soft/jdk
exprot PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
$>source /etc/profile
检查是否成功
$> hadoop version
C、 创建几个文件夹,尽量创建在home下,省得权限问题
D、 修改/soft/hadoop/etc/full的配置文件
【core-site.xml】
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/zhangdada/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://s200:9000</value>
</property>
</configuration>
【hadoop-env.sh】
修改java的地址将export JAVA_HOME=${JAVA_HOME}
修改为:export JAVA_HOME=/soft/jdk1.8.0_65
【hdfs-site.xml】
<property>
<name>dfs.name.dir</name>
<value>/home/zhangdada /hadoop/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/zhangdada /hadoop/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description> replication count</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property>
说明:dfs.permissions配置为false后,可以允许不要检查权限就生成dfs上的文件,方便倒是方便了,但是你需要防止误删除,请将它设置为true,或者直接将该property节点删除,因为默认就是true。
【mapred-site.xml】这个文件是由sudo cp mapred-site.xml.template mapred-site.xml得来的。
<property>
<name>mapred.job.tracker</name>
<value>s200:49001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/zhangdada /hadoop/var</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
【slaves】
S201
【yarn-site.xml】
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s200</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>每个节点可用内存,单位MB,默认8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
说明:yarn.nodemanager.vmem-check-enabled这个的意思是忽略虚拟内存的检查,如果你是安装在虚拟机上,这个配置很有用,配上去之后后续操作不容易出问题。如果是实体机上,并且内存够多,可以将这个配置去掉。
- 克隆虚拟机 ,
- 修改ip地址为固定ip,编写hosts与hostname
/etc/sysconfig/network-scripts/ifcfg-xxxx文件中的ip地址
- 配置无密登录ssh,编写xcall,xsync
【配置ssh】:
1)检查是否安装了ssh相关软件包(openssh-server + openssh-clients + openssh)
$yum list installed | grep ssh
2)检查是否启动了sshd进程
$>ps -Af | grep sshd
3)在client侧生成公私秘钥对。
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4)生成~/.ssh文件夹,里面有id_rsa(私钥) + id_rsa.pub(公钥)
5)追加公钥到~/.ssh/authorized_keys文件中(文件名、位置固定)
$>cd ~/.ssh
$>cat id_rsa.pub >> authorized_keys
6)将s201的公钥文件id_rsa.pub远程复制到202 ~ 204主机上。
并放置/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s201:/home/centos/.ssh/authorized_keys
7)修改authorized_keys的权限为644.
$>chmod 644 authorized_keys
8)测试
$>ssh localhost
如果ssh不成功的话,要查看目标机器的日志
$>cat /var/log/secure
修改目标机器的权限:
·sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
- 用户目录权限为 755 或者 700,就是不能是77x。
- .ssh目录权限一般为755或者700。
- rsa_id.pub 及authorized_keys权限一般为644
- rsa_id权限必须为600
【xcall.sh与xsync.sh】
- 将两个文件放到 /bin 目录下,添加可执行的权限
$>mv xcall.sh /bin
$>chmod o+w xcall.sh
- 使用xcall.sh在所有节点上创建jps符号连接,指向/soft/jdk/bin/jps
------------------------------------------------------------------
1.切换到root用户
$>su root
2.创建符号连接
$>xcall.sh "ln -sfT /soft/jdk1.8.0_65/bin/jps /usr/local/bin/jps"
3.修改jps符号连接的owner
$>xcall.sh "chown -h zhangdada:zhangdada /usr/local/bin/jps"
4.查看所有主机上的java进程
$>xcall.sh jps
- 格式化,
$>hdfs namenode –format
启动,
$>start-dfs.sh
$>start-yarn.sh
查看(启动成功)
查看启用的线程 netstat –ntlp
在主机上查看hdfs:http://192.168.209.200:50070
- hdfs的一些操作