笔者购买的服务器是腾讯云(最低配置88元/年,穷苦大二学生为了学习后端知识)。购买之后需要在腾讯云重装系统,建立新的用户。连接服务器的软件是Xshell。
在网上获取的jdk-8u45-linux-x64.tar.gz(网盘地址:https://pan.baidu.com/s/1o7B1PXK 密码:el7b)。然后使用Xshell连接服务器,创建在root创建software并进入,将jdk压缩包拖入Xshell命令行。待其传输完毕,方可进行下一步。
若下载速率为0kb/s,需要安装lrzsz:
yum install -y lrzsz
tar -zxvf jdk-8u45-linux-x64.tar.gz
解压jdk,解压后发现 software/java多了一个jdk1.8.0_45文件夹。这样jdk就全部安装完成了。
vim /etc/profile
编辑profile文件,在其底部加入以下内容
export JAVA_HOME=/root/software/java/jdk1.8.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
最后使用
source /etc/profile
使profile文件生效
java -version
查看java版本,会返回以下内容
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
也可以编写一段java代码测试是否安装成功。
tomcat官网下载https://tomcat.apache.org/download-80.cgi
下载成功后,将该压缩包用Xshell传到服务器。
tar -zxvf apache-tomcat-8.5.59.tar.gz
解压tomcat安装包(可能版本不一样),跟jdk一样解压完即安装好。进入bin目录执行
./startup.sh
即可启动tomcat(可能没有权限 需要先执行 chmod 777 * 修改所有权限)
查看是否配置防火墙
service iptables status
报错
Redirecting to /bin/systemctl status iptables.service
Unit iptables.service could not be found.
提示未安装iptables-service
解决办法(若没报错请跳过):
关闭防火墙
systemctl stop firewalld
并且安装iptables-services:
yum install iptables-services.x86_64
设置开机启动:
systemctl enable iptables
保存设置
service iptables save
——解决办法到此为止——
配置防火墙
vim /etc/sysconfig/iptables
在iptables文件,将一下代码写在COMMIT前
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
重启防火墙。
chkconfig iptables off
service restart iptables
systemctl restart firewalld
单独开放端口8080
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --zone=public --query-port=8080/tcp
附:查看进程信息命令
(1)查看关于tomcat的后台进程
ps aux | grep tomcat
(2)查看端口状态
netstat -apn | grep 80
(3)查看防火墙状态
systemctl status firewalld.service
防火墙正在运行
防火墙停止运行
配置路径
CATALINA_HOME=/root/software/tomcat/apache-tomcat-8.5.59
在自己的电脑打开浏览器输入如下(ip 为linux服务器外网ip)
ip:8080
mysql数据库官方下载https://dev.mysql.com/downloads/repo/yum/
获取到mysql80-community-release-el7-3.noarch.rpm,通过Xshell传输安装包
执行以下命令进行安装(如果下载速度过慢可以尝试ctrl+c终止运行,再重新执行)
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
yum install -y mysql-community-server
安装完成
当第一次启动MySQL服务器时,为MySQL根用户生成一个临时密码。 您可以通过运行以下命令找到密码:
执行以下命令查看mysqld.log文件,查看其是否为空。
systemctl restart mysqld
vi /var/log/mysqld.log
如果这个文件为空:
1.删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)
rm -rf /var/lib/mysql
2.重启mysqld服务
systemctl restart mysqld
3.再去找临时密码
vi /var/log/mysqld.log
图中所示的临时密码为:nhyEu,IuT5Ip
先把它记录下来。
接下来登陆mysql
sudo mysql_secure_installation
这里输入你刚才记录的密码
然后需要重新设定新的密码(密码必须至少包含8个字符并且至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符。)
接下来会让你弄一下其他设置,没有特殊要求就直接输入y
这里我允许root远程登陆(差点按y按快了)
但现在还不能从window的navicat连接到linux的mysql
我们先在linux登录mysql数据库
mysql -uroot -p
输入以下代码:
1.进入mysql库
use mysql
2.更新域属性,’%'表示允许外部访问:
update user set host='%' where user ='root';
3.执行以上语句之后再执行:
FLUSH PRIVILEGES;
4.再执行授权语句:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
5.最后在navicat尝试连接
redis官网 https://redis.io/
点击下载
将下载好的redis-6.2.1.tar.gz放入linux并解压
tar -zxvf redis-6.2.1.tar.gz
进入redis-6.2.1执行命令
make
待其编译完成,然后进入src文件夹执行命令
make install
make install会默认将redis下载至 /usr/local/bin
也可以使用命令自定义安装
make install PREFIX=(绝对路径)
这样redis就安装好了
首先将解压出来的redis.conf拷贝一份到安装redis的位置
cp redis.conf /usr/local/bin/ (或是自定义的安装地址)
然后对redis.conf进行修改
a.开启redis守护进程
在命令界面使用 / + 字段 可以进行搜索,按下回车后可以使用小写字母n和大写字母N进行上下切换,将daemonize no修改为
daemonize yes
b.允许远程连接
同理搜索bind,将这行修改为
bind 0.0.0.0
c.设置密码(推荐)
添加一行
requirepass (密码)
若没有密码可以首次登录设置临时密码
d.开放redis端口
vim /etc/sysconfig/iptables
加入一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
修改防火墙后,重启防火墙
systemctl restart firewalld
修改完成后,让redis在后台启动
./redis-server redis.conf
顺带提一句,可以不带redis.conf,但不是在后台启动。
在线程中查询redis是否成功启动
这里是为redis.conf未设置密码准备的。
redis在后台启动后,进行登录
./redis-cli -h ip -p 6379
如果没有修改bind,那就只能本地登录,本地登录不需要host和post参数
查看密码
config get requirepass
第一个requirepass是key,第二行是值
可以看出 requirepass = “” ,即现在的redis是没有密码的。接下来我们给它设定密码
config set requirepass (新密码)
然后用exit命令退出再进入
发现不能获取密码了,已经没有权限了
用以下命令进行登录
auth (密码)
由于比赛需要,我买了一个阿里云,又找hxd借了一个腾讯云用来搭建hadoop集群。(hadoop没有什么安全保护机制,慎入)
hadoop官网:http://hadoop.apache.org/
(Source download和Binary download的区别:前者是未编译过的代码,后者是编译过后的可执行文件。类似于java代码和jar包的区别)
笔者使用的是hadoop 2.7.1,通过Xshell转移到云服务器上
因为我们下的是Binary download版本,直接在/root/software/hadoop下创建文件夹并解压hadoop-2.7.1.tar.gz即安装完成
a.编辑/etc/hosts文件
master节点
slave节点
slave1节点
设定本机的ip用本机的内网ip,对于其他节点则用外网ip。
内网ip查看方式
ifconfig
b.各节点之间设置ssh免密登录
ssh-keygen -t rsa -P ''
生成公钥秘钥对,输入命令后一直按回车。
(公钥生成的地址为/root/.ssh/id_rsa.pub,秘钥生成位置为/root/.ssh/id_rsa)
如果一台服务器中的/root/.ssh/authorized_keys里有你的秘钥对应公钥,你就可以免密登录这台服务器。
所以为了实现各节点直接免密登录,则每个节点都需要获得所有节点的公钥。为了实现方便,先将所有公钥放到一个节点,再进行复制。
首先让所有的节点,生成公钥秘钥对,然后将所有节点的公钥复制到新创建的all_public_key文件
touch all_public_key
scp /root/.ssh/authorized_keys root@节点ip:/root/.ssh/all_public_key
依次传输给每个节点后,再到每个节点将公钥添加至authorized_keys尾部
cat /root/.ssh/all_public_key >> /root/.ssh/authorized_keys
可以通过一下命令进行ssh登录
ssh 目标ip
a.配置hadoop-env.sh文件
在该文件尾部添加JAVA_HOME(可以直接复制/etc/profile里的JAVA_HOME)
b.配置core-site.xml
fs.defaultFS
hdfs://master:9000
hadoop.tmp.dir
/root/software/hadoop/hadoop-2.7.1/tmp
io.file.buffer.size
131072
c.配置hdfs-site.xml
dfs.replication
1
dfs.permissions
false
d.配置mapred-site.xml
mapreduce.framework.name
local
e.配置yarn-site.xml
yarn.resourcemanager.hostname
master
yarn.nodemanager.aux-services
mapreduce_shuffle
f.配置/etc/sysconfig/iptables文件
在COMMIT上方加两行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
g.配置/etc/profile
#hadoop
export HADOOP_HOME=/root/software/hadoop/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
根据你hadoop安装的地址,只需要修改参数HADOOP_HOME=/root/software/hadoop/hadoop-2.7.1
50070端口是开放hadoop web监控页面
9000端口是开放hdfs和mapreduce
然后重启服务器
reboot
重启完毕后,在主节点格式化,并启动
hdfs namnode -format
start-all.sh
访问主节点的ip:50070
datanodes可以查看有几个datanode及其存储空间
datanodes可以查看有几个datanode及其存储空间
大二期间,笔者常用的云服务器软件就是这些了。(云服务器经常被我玩坏,重装了许多次,所以才会写这篇博客)