这头小象看着可还行???
服务器或者虚拟机搞好以后,开始如下操作。
- 关闭防火墙,(可选,生产环境只开放对应端口即可)
systemctl stop firewalld.service
systemctl disable firewalld.service
- 设置主机名 ,方便管理
vi /etc/hosts
把IP和主机名添加进去,如果是购买的服务器,一定要填写内网IP哦
11.22.33.44 bigdata
- 安装JDK,对root用户生效
解压,后面的文件夹不指定会解压到当前目录
tar -zxvf jdk-8-linux-x64.tar.gz -C ~/application/
编辑环境变量
vi ~/.bash_profile
添加如下配置,按i插入
JAVA_HOME=/application/jdk1.8
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
编辑完按esc,然后shift+:,输入wq保存退出
生效环境变量
source ~/.bash_profile
以上只对root用户生效,对所有用户生效,需要修改/etc/profile,生效是source /etc/profile
- 安装Hadoop
解压方式和JDK一样。
编辑环境变量
vi ~/.bash_profile
添加如下配置
HADOOP_HOME=/application/hadoop-2.7.3
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
生效环境变量
source ~/.bash_profile
- SSH免密登录
使用rsa不对称算法生成密钥对
ssh-keygen -t rsa
接着回车3连击,直接回车就行了。
它会在当前用户的隐藏目录下生成两个文件,有兴趣自行打开看一下,其实就是字符串。
继续输入
将自己的公钥给B,这里给自己了,因为就一台机器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata
此时,远程机器收到公钥,会在一个隐藏目录下,当前用户.ssh/目录下生成一个文件,叫authorized_deys。到此为止,免密登录就配置好了。
- 配置Hadoop
修改hadoop-env.sh
vi /application/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
如下位置,修改jdk路径
# The java implementation to use.
export JAVA_HOME=/application/jdk1.8
文件路径
/application/hadoop-2.7.3/etc/hadoop
hdfs-site.xml
数据块的冗余度,一般不要超过3,即使是多个节点也是
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
禁用了HDFS的权限检查,开发和测试建议是false,生产是true
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
core-site.xml
NameNode的地址,9000是RPC通信端口,bigdata那块写主机名或者IP都可以,端口配别的也可以
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata:9000</value>
</property>
HDFS对应的操作系统目录,这个目录需要事先存在,我这里直接创建了,这个如果不改,默认是linux的/tmp目录,一旦linux重启,tmp目录下的文件就自动删除。
<property>
<name>hadoop.tmp.dir</name>
<value>/application/hadoop-2.7.3/tmp</value>
</property>
创建
mkdir /application/hadoop-2.7.3/tmp
mapred-site.xml
这个xml默认不存在,它只提供了一个同名的template,拷贝一份,修改文件名。
这个是mapreduce的framework,也就是运行的框架,从hadoop2.x开始,它都是运行在yarn上,也可以运行在TEZ上,这里配置成yarn。
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
Yarn的主节点
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata</value>
</property>
NodeManager的服务:shuffle洗牌,
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
格式化
第一次运行hadoop需要进行格式化,以后运行hadoop不需要再进行格式化。格式化的意思就像你新买的U盘,买回来格式化一下再用差不多。
hdfs namenode -format
在运行结果中找到successfully formatted表示格式化成功,路径也是上面配置后的路径。
启动
start-all.sh
启动后,输入jps命令,查看是否运行正常。
验证是否成功,访问页面:
11.22.33.44:50070
11.22.33.44:8088