!ssh远程执行命令时的一个小知识点
ssh 远程登录可以为所欲为,但是ssh远程执行的时候默认不会加载/etc下的文件如
ssh [email protected]
echo $JAVA_HOME
是打印不出来的,应该换写成下面的形式
ssh [email protected]
source /etc/profile ; echo $JAVA_HOME
#如果没有vim可选择安装vim
yum -y install vim
#关闭防火墙
service iptables stop
#开启自动关闭防火墙
chkconfig iptables off
#centos7关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
#配置Selinux为disabled
vim /etc/selinux/config
SELINUX=disabled
#安装ntp服务
yum -y install ntp
#配置ntp服务
vim /etc/ntp.conf
server ntp1.aliyun.com
#开启ntp服务[准不准不重要,集群时间一致就行]
service ntpd start
systemctl start ntpd.service
#开机自动启动ntpd服务
chkconfig ntpd on
systemctl enable ntpd.service
vim /etc/hosts
10.0.92.101 work1
10.0.92.102 work2
10.0.92.103 work3
10.0.92.104 work4
vim /etc/hosts
192.168.0.114 home1
192.168.0.115 home2
192.168.0.116 home3
192.168.0.117 home4
mkdir -p /opt/zip
mkdir -p /opt/soft
mkdir -p /opt/data/tmp
cd /opt/zip
上传jdk hadoop 到/opt/zip中
tar -xzvf jdk-1.8.tar.gz -C /opt/soft
tar -xzvf hadoop-2.7.7.tar.gz -C /opt/soft/
cd /opt/soft/
mv jdk1.8.0_201 jdk1.8
mv hadoop-2.7.7 hadoop2.7
export JAVA_HOME="/opt/soft/jdk1.8"
export HADOOP_HOME="/opt/soft/hadoop2.7"
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
#或者 . /etc/profile
echo $JAVA_HOME
echo $HADOOP_HOME
为了方便最好把这几个都配置一下
配置 Hadoop JDK 路径修改 hadoop-env.sh、mapred-env.sh、yarn-env.sh 文件中的 JDK 路径
vim hadoop-env.sh
vim mapred-env.sh
vim yarn-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME="/opt/soft/jdk1.8"
为啥一定要改这个呢??还记得文章开头写的吗。ssh远程执行时这里面的${JAVA_HOME}是获取不好的,会出问题,所以换成绝对路径。
etc/hadoop/core-site.xml:
fs.defaultFS
hdfs://localhost:9000
hadoop.tmp.dir
/opt/soft/hadoop2.7/data/tmp
比hadoop官网多配置了一个hadoop.tmp.dir原因是
默认的
hadoop.tmp.dir
是/tmp/hadoop-${user.name}
,此时有个问题就是 NameNode 会将 HDFS 的元数据存储在这个/tmp目录下,如果操作系统重启了,系统会清空 /tmp 目录下的东西,导致NameNode元数据丢失,是个非常严重的问题,所有我们应该修改这个路径。
etc/hadoop/hdfs-site.xml:
dfs.replication
1
ssh localhost 检测一下是否已经配置过,同时会自动生成一个.ssh的文件夹,进入到.ssh文件夹中,准备生成密钥
说明:把自己的公钥给谁,自己就可以登录谁了。
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
#或者 ssh-keygen -t rsa + 3个回车
方式一 通过ssh-copy-id的方式【推荐】
ssh-copy-id -i ~/.ssh/id_rsa.pub <IP地址或者域名localhost>
#栗子
ssh-copy-id -i ~/.ssh/id_rsa.pub localhost
ssh-copy-id -i ~/.ssh/id_rsa.pub work1
ssh-copy-id -i ~/.ssh/id_rsa.pub work2
ssh-copy-id -i ~/.ssh/id_rsa.pub work3
ssh-copy-id -i ~/.ssh/id_rsa.pub work4
如上配置完 work1就能登录 work2,work3,work4
方式二 通过scp将内容写到对方的文件中
scp -p ~/.ssh/id_rsa.pub root@:/root/.ssh/temp.pub
#然后再登录另一个服务器 [把名字改伟temp.pub的原因是防止和另一台上的id_rsa.pub冲突]
cat ~/.ssh/temp.pub >> ~/.ssh/authorized_keys
rm -f ~/.ssh/temp.pub
方式三 手工复制粘贴的方式
把id_rsa.pub追加到其他服务器的~/.ssh/authorized_keys里面
#格式化
hdfs namenode -format
#启动
sbin/start-dfs.sh
#检查
jps
#打开网页访问
http://work1:50070
#创建目录
hdfs dfs -mkdir -p /user/root/test
#上传文件
hdfs dfs -put ngindx.tar.gz /user/root/test
#下载文件
hdfs dfs -get /user/root/test/nginx.tar.gz
配置yarn
cd ${HADOOP_HOME}/etc/hadoop/
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
configuration>
vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>work1value>
property>
configuration>
启动yarn资源管理器,和nodeManager
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
计算一个wordcount
echo "hadoop mapreduce hivehbase spark stormsqoop hadoop hivespark hadoop" >wc.input
hdfs dfs -mkdir /demo
hdfs dfs -put wc.input /demo
hdfs dfs -cat /demo/wc.input
cd /opt/soft/hadoop2.7/share/hadoop/mapreduce
yarn jar hadoop-mapreduce-examples-2.7.7.jar wordcount /demo /out
#计算完成后查看结果
hdfs dfs -cat /out/part-r-00000
cd /opt/soft/hadoop2.7.7/sbin
#停止运行
stop-dfs.sh
总结安装好后,启动并运行一个wordcount
start-dfs.sh
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
hdfs dfs -ls /
echo "hadoop mapreduce hivehbase spark stormsqoop hadoop hivespark hadoop" >wc.input
hdfs dfs -mkdir /test
hdfs dfs -put wc.input /test
cd /opt/soft/hadoop2.7/share/hadoop/mapreduce/
yarn jar hadoop-mapreduce-examples-2.7.7.jar wordcount /test /out